BLJHEFB7SWAE4XB3GUAWA6TOVFKONOZO7URKJVSUNXGRXLKZHXOQC proofPlusLeftReduction Zero (Succesor y) =rewrite proofPlusLeftReduction Zero y in ReflproofPlusLeftReduction (Succesor x) (Succesor y) =rewrite proofPlusLeftReduction (Succesor x) y in Refl
proofPlusLeftReduction x (Succesor y) =rewrite proofPlusLeftReduction x y in ReflpartialexportproofPlusCommutative : (x, y : Natural) -> plus x y = plus y xproofPlusCommutative x Zero = rewrite proofPlusLeftIdentity x in ReflproofPlusCommutative x (Succesor y) =rewrite proofPlusCommutative x y inrewrite proofPlusLeftReduction y x inReflexportproofPlusAssociative : (x, y, z : Natural) -> plus x (plus y z) = plus (plus x y) zproofPlusAssociative x y Zero = ReflproofPlusAssociative x y (Succesor z) =rewrite proofPlusAssociative x y z in Refl
exportproofMultCommutative : (x, y : Natural) -> mult x y = mult y xproofMultCommutative Zero Zero = ReflproofMultCommutative Zero (Succesor y) = rewrite proofMultCommutative Zero y in ReflproofMultCommutative (Succesor x) Zero = rewrite proofMultCommutative Zero x in ReflproofMultCommutative (Succesor x) (Succesor y) =rewrite proofPlusLeftReduction x (mult (Succesor x) y) inrewrite proofPlusLeftReduction y (mult (Succesor y) x) inrewrite proofMultCommutative (Succesor x) y inrewrite proofMultCommutative (Succesor y) x inrewrite proofMultCommutative x y inrewrite proofPlusAssociative x y (mult y x) inrewrite proofPlusAssociative y x (mult y x) inrewrite proofPlusCommutative x y inRefl
exportpartialproofMultLeftReduction : (x, y : Natural) -> mult (Succesor x) y = plus y (mult x y)proofMultLeftReduction x y =rewrite proofMultCommutative (Succesor x) y inrewrite proofMultCommutative x y inReflexportpartialproofMultLeftDistributesPlus : (x, y, z : Natural) -> mult x (plus y z) = plus (mult x y) (mult x z)proofMultLeftDistributesPlus Zero y z =rewrite proofMultLeftAnnihilation y inrewrite proofMultLeftAnnihilation z inrewrite proofMultLeftAnnihilation (plus y z) inReflproofMultLeftDistributesPlus (Succesor x) y z =rewrite proofMultLeftReduction x y inrewrite proofMultLeftReduction x z inrewrite proofMultLeftReduction x (plus y z) inrewrite proofMultLeftDistributesPlus x y z inrewrite proofPlusAssociative (plus y (mult x y)) z (mult x z) inrewrite proofPlusCommutative (plus y (mult x y)) z inrewrite proofPlusAssociative z y (mult x y) inrewrite proofPlusCommutative z y inrewrite proofPlusAssociative (plus y z) (mult x y) (mult x z) inRefl