{ "cell_id": 16367551995434684411, "cells": [ { "cell_id": 14504029108633095928, "cell_origin": "client", "cell_type": "latex", "cells": [ { "cell_id": 8055144346042432708, "cell_origin": "client", "cell_type": "latex_view", "source": "\\algorithm{unwrap}{Move objects out of derivatives, accents or exterior products.}\n\nMove objects out of \\prop{Derivative}s, \\prop{Accent}s or exterior (wedge) products when\nthey do not depend on these operators. The most basic example is Accents, which\nwill get removed from objects which do not depend on them, as\nin the following example:" } ], "hidden": true, "source": "\\algorithm{unwrap}{Move objects out of derivatives, accents or exterior products.}\n\nMove objects out of \\prop{Derivative}s, \\prop{Accent}s or exterior (wedge) products when\nthey do not depend on these operators. The most basic example is Accents, which\nwill get removed from objects which do not depend on them, as\nin the following example:" }, { "cell_id": 14249786823637233933, "cell_origin": "client", "cell_type": "input", "cells": [ { "cell_id": 9223372036854775816, "cell_origin": "server", "cell_type": "latex_view", "source": "\\begin{dmath*}{}\\text{Attached property Accent to~}\\widehat{\\#}.\\end{dmath*}" }, { "cell_id": 9223372036854775817, "cell_origin": "server", "cell_type": "latex_view", "source": "\\begin{dmath*}{}\\text{Attached property Distributable to~}\\widehat{\\#}.\\end{dmath*}" }, { "cell_id": 9223372036854775818, "cell_origin": "server", "cell_type": "latex_view", "source": "\\begin{dmath*}{}\\text{Attached property Depends to~}B.\\end{dmath*}" }, { "cell_id": 9223372036854775819, "cell_origin": "server", "cell_type": "latex_view", "cells": [ { "cell_id": 9223372036854775820, "cell_origin": "server", "cell_type": "input_form", "source": "\\hat{A + B + C}" } ], "source": "\\begin{dmath*}{}\\widehat{A+B+C}\\end{dmath*}" } ], "source": "\\hat{#}::Accent;\n\\hat{#}::Distributable;\nB::Depends(\\hat);\n\nex:=\\hat{A+B+C};" }, { "cell_id": 8019439534319867171, "cell_origin": "client", "cell_type": "input", "cells": [ { "cell_id": 9223372036854775822, "cell_origin": "server", "cell_type": "latex_view", "cells": [ { "cell_id": 9223372036854775823, "cell_origin": "server", "cell_type": "input_form", "source": "\\hat{A} + \\hat{B} + \\hat{C}" } ], "source": "\\begin{dmath*}{}\\widehat{A}+\\widehat{B}+\\widehat{C}\\end{dmath*}" } ], "source": "distribute(_);" }, { "cell_id": 16433109665923551967, "cell_origin": "client", "cell_type": "input", "cells": [ { "cell_id": 9223372036854775825, "cell_origin": "server", "cell_type": "latex_view", "cells": [ { "cell_id": 9223372036854775826, "cell_origin": "server", "cell_type": "input_form", "source": "\\hat{B}" } ], "source": "\\begin{dmath*}{}\\widehat{B}\\end{dmath*}" } ], "source": "unwrap(_);" }, { "cell_id": 15581052402337717386, "cell_origin": "client", "cell_type": "latex", "cells": [ { "cell_id": 13385333830224401826, "cell_origin": "client", "cell_type": "latex_view", "source": "Derivatives will be set to zero if an object inside does not depend on\nit. All objects which are annihilated by the derivative operator are\nmoved to the front (taking into account anti-commutativity if necessary)," } ], "hidden": true, "source": "Derivatives will be set to zero if an object inside does not depend on\nit. All objects which are annihilated by the derivative operator are\nmoved to the front (taking into account anti-commutativity if necessary)," }, { "cell_id": 5108931698136803462, "cell_origin": "client", "cell_type": "input", "cells": [ { "cell_id": 9223372036854775832, "cell_origin": "server", "cell_type": "latex_view", "source": "\\begin{dmath*}{}\\text{Attached property PartialDerivative to~}\\partial{\\#}.\\end{dmath*}" }, { "cell_id": 9223372036854775833, "cell_origin": "server", "cell_type": "latex_view", "source": "\\begin{dmath*}{}\\text{Attached property AntiCommuting to~}\\left[A,~\\discretionary{}{}{} B,~\\discretionary{}{}{} C,~\\discretionary{}{}{} D\\right].\\end{dmath*}" }, { "cell_id": 9223372036854775834, "cell_origin": "server", "cell_type": "latex_view", "source": "\\begin{dmath*}{}\\text{Attached property Coordinate to~}x.\\end{dmath*}" }, { "cell_id": 9223372036854775835, "cell_origin": "server", "cell_type": "latex_view", "source": "\\begin{dmath*}{}\\text{Attached property Depends to~}\\left[B,~\\discretionary{}{}{} D\\right].\\end{dmath*}" } ], "source": "\\partial{#}::PartialDerivative;\n{A,B,C,D}::AntiCommuting;\nx::Coordinate;\n{B,D}::Depends(\\partial{#});" }, { "cell_id": 8096057681359605817, "cell_origin": "client", "cell_type": "input", "cells": [ { "cell_id": 9223372036854775837, "cell_origin": "server", "cell_type": "latex_view", "cells": [ { "cell_id": 9223372036854775838, "cell_origin": "server", "cell_type": "input_form", "source": "\\partial_{x}(A B C D)" } ], "source": "\\begin{dmath*}{}\\partial_{x}\\left(A B C D\\right)\\end{dmath*}" } ], "source": "ex:=\\partial_{x}{A B C D};" }, { "cell_id": 406841013989955329, "cell_origin": "client", "cell_type": "input", "cells": [ { "cell_id": 9223372036854775840, "cell_origin": "server", "cell_type": "latex_view", "cells": [ { "cell_id": 9223372036854775841, "cell_origin": "server", "cell_type": "input_form", "source": "-A C \\partial_{x}(B D)" } ], "source": "\\begin{dmath*}{}-A C \\partial_{x}\\left(B D\\right)\\end{dmath*}" } ], "source": "unwrap(_);" }, { "cell_id": 13736871175375612419, "cell_origin": "client", "cell_type": "latex", "cells": [ { "cell_id": 8242814143146979662, "cell_origin": "client", "cell_type": "latex_view", "source": "Note that a product remains inside the derivative; to expand that\nuse \\algo{product_rule}. Here is another example:" } ], "hidden": true, "source": "Note that a product remains inside the derivative; to expand that\nuse \\algo{product_rule}. Here is another example:" }, { "cell_id": 729755081056442813, "cell_origin": "client", "cell_type": "input", "cells": [ { "cell_id": 9223372036854775845, "cell_origin": "server", "cell_type": "latex_view", "source": "\\begin{dmath*}{}\\text{Attached property Derivative to~}\\partial{\\#}.\\end{dmath*}" }, { "cell_id": 9223372036854775846, "cell_origin": "server", "cell_type": "latex_view", "source": "\\begin{dmath*}{}\\text{Attached property Depends to~}X.\\end{dmath*}" }, { "cell_id": 9223372036854775847, "cell_origin": "server", "cell_type": "latex_view", "cells": [ { "cell_id": 9223372036854775848, "cell_origin": "server", "cell_type": "input_form", "source": "\\del(X Y Z)" } ], "source": "\\begin{dmath*}{}\\partial\\left(X Y Z\\right)\\end{dmath*}" } ], "source": "\\del{#}::LaTeXForm(\"\\partial\").\n\\del{#}::Derivative;\nX::Depends(\\del{#});\nex:=\\del{X*Y*Z};" }, { "cell_id": 5187664421558439268, "cell_origin": "client", "cell_type": "input", "cells": [ { "cell_id": 9223372036854775850, "cell_origin": "server", "cell_type": "latex_view", "cells": [ { "cell_id": 9223372036854775851, "cell_origin": "server", "cell_type": "input_form", "source": "\\del(X) Y Z + X \\del(Y) Z + X Y \\del(Z)" } ], "source": "\\begin{dmath*}{}\\partial{X} Y Z+X \\partial{Y} Z+X Y \\partial{Z}\\end{dmath*}" } ], "source": "product_rule(_);" }, { "cell_id": 654130972420458309, "cell_origin": "client", "cell_type": "input", "cells": [ { "cell_id": 9223372036854775853, "cell_origin": "server", "cell_type": "latex_view", "cells": [ { "cell_id": 9223372036854775854, "cell_origin": "server", "cell_type": "input_form", "source": "\\del(X) Y Z" } ], "source": "\\begin{dmath*}{}\\partial{X} Y Z\\end{dmath*}" } ], "source": "unwrap(_);" }, { "cell_id": 6389123235373527656, "cell_origin": "client", "cell_type": "latex", "cells": [ { "cell_id": 4815211910380063113, "cell_origin": "client", "cell_type": "latex_view", "source": "Note that all objects are by default constants for the action of\n\\prop{Derivative} operators. If you want objects to stay inside\nderivative operators you have to explicitly declare that they depend\non the derivative operator or on the coordinate with respect to which\nyou take a derivative.\n" } ], "hidden": true, "source": "Note that all objects are by default constants for the action of\n\\prop{Derivative} operators. If you want objects to stay inside\nderivative operators you have to explicitly declare that they depend\non the derivative operator or on the coordinate with respect to which\nyou take a derivative.\n" }, { "cell_id": 10338581126428217968, "cell_origin": "client", "cell_type": "latex", "cells": [ { "cell_id": 5287169212014684320, "cell_origin": "client", "cell_type": "latex_view", "source": "The final case where \\algo{unwrap} acts is when exterior products contain factors which are\nscalars (or forms of degree zero). The following example shows this." } ], "hidden": true, "source": "The final case where \\algo{unwrap} acts is when exterior products contain factors which are\nscalars (or forms of degree zero). The following example shows this." }, { "cell_id": 9979798330945148543, "cell_origin": "client", "cell_type": "input", "cells": [ { "cell_id": 9223372036854775809, "cell_origin": "server", "cell_type": "latex_view", "source": "\\begin{dmath*}{}\\text{Attached property AntiCommuting to~}\\left[V,~\\discretionary{}{}{} g\\right].\\end{dmath*}" }, { "cell_id": 9223372036854775810, "cell_origin": "server", "cell_type": "latex_view", "cells": [ { "cell_id": 9223372036854775811, "cell_origin": "server", "cell_type": "input_form", "source": "f V ^ W g" } ], "source": "\\begin{dmath*}{}\\left(f V\\right)\\wedge \\left(W g\\right)\\end{dmath*}" } ], "source": "{f,g}::DifferentialForm(degree=0).\n{V, W}::DifferentialForm(degree=1).\n{V,g}::AntiCommuting;\nfoo := f V ^ W g;" }, { "cell_id": 3962568245785140347, "cell_origin": "client", "cell_type": "input", "cells": [ { "cell_id": 9223372036854775813, "cell_origin": "server", "cell_type": "latex_view", "cells": [ { "cell_id": 9223372036854775814, "cell_origin": "server", "cell_type": "input_form", "source": "-f g V ^ W" } ], "source": "\\begin{dmath*}{}-f g V\\wedge W\\end{dmath*}" } ], "source": "unwrap(_);" }, { "cell_id": 10446126163656098854, "cell_origin": "client", "cell_type": "latex", "cells": [ { "cell_id": 5660117810038829021, "cell_origin": "client", "cell_type": "latex_view", "source": "As this example shows, \\algo{unwrap} takes into account commutativity properties (hence the sign flip)." } ], "hidden": true, "source": "As this example shows, \\algo{unwrap} takes into account commutativity properties (hence the sign flip)." }, { "cell_id": 16216585032253051571, "cell_origin": "client", "cell_type": "input", "source": "" } ], "description": "Cadabra JSON notebook format", "version": 1.0 }