-- file: natPulsAssocPS.mod mod! NATplus { [ Nat] op 0 : -> Nat op s_ : Nat -> Nat op _+_ : Nat Nat -> Nat vars M N : Nat eq 0 + N = N . eq (s M) + N = s(M + N) . } -- opening module NATplus and EQL open (NATplus + EQL) --> declaring constants for arbitrary values ops i j k : -> Nat . **> Prove associativity: (i + j) + k = i +(j + k) **> by induction on i **> base case proof for 0: red 0 + (j + k) = (0 + j) + k . **> induction hypothesis: eq (i + J:Nat) + K:Nat = i + (J + K) . **> induction step proof for (s k): red ((s i) + J:Nat) + K:Nat = (s i) + (J + K) . **> QED {end of proof for associativity of (_+_)} close