1 include "logic/equality.ma".
3 (* Inclusion of: BOO008-2.p *)
5 (* -------------------------------------------------------------------------- *)
7 (* File : BOO008-2 : TPTP v3.7.0. Released v1.0.0. *)
9 (* Domain : Boolean Algebra *)
11 (* Problem : Sum is associative ( (X + Y) + Z = X + (Y + Z) ) *)
13 (* Version : [ANL] (equality) axioms. *)
21 (* Names : prob1.ver2.in [ANL] *)
23 (* Status : Unsatisfiable *)
25 (* Rating : 0.11 v3.4.0, 0.12 v3.3.0, 0.14 v3.2.0, 0.07 v3.1.0, 0.00 v2.7.0, 0.09 v2.6.0, 0.17 v2.5.0, 0.00 v2.2.1, 0.44 v2.2.0, 0.57 v2.1.0, 0.75 v2.0.0 *)
27 (* Syntax : Number of clauses : 15 ( 0 non-Horn; 15 unit; 1 RR) *)
29 (* Number of atoms : 15 ( 15 equality) *)
31 (* Maximal clause size : 1 ( 1 average) *)
33 (* Number of predicates : 1 ( 0 propositional; 2-2 arity) *)
35 (* Number of functors : 8 ( 5 constant; 0-2 arity) *)
37 (* Number of variables : 24 ( 0 singleton) *)
39 (* Maximal term depth : 3 ( 2 average) *)
43 (* -------------------------------------------------------------------------- *)
45 (* ----Include boolean algebra axioms for equality formulation *)
47 (* Inclusion of: Axioms/BOO003-0.ax *)
49 (* -------------------------------------------------------------------------- *)
51 (* File : BOO003-0 : TPTP v3.7.0. Released v1.0.0. *)
53 (* Domain : Boolean Algebra *)
55 (* Axioms : Boolean algebra (equality) axioms *)
57 (* Version : [ANL] (equality) axioms. *)
69 (* Syntax : Number of clauses : 14 ( 0 non-Horn; 14 unit; 0 RR) *)
71 (* Number of atoms : 14 ( 14 equality) *)
73 (* Maximal clause size : 1 ( 1 average) *)
75 (* Number of predicates : 1 ( 0 propositional; 2-2 arity) *)
77 (* Number of functors : 5 ( 2 constant; 0-2 arity) *)
79 (* Number of variables : 24 ( 0 singleton) *)
81 (* Maximal term depth : 3 ( 2 average) *)
85 (* -------------------------------------------------------------------------- *)
87 (* -------------------------------------------------------------------------- *)
89 (* -------------------------------------------------------------------------- *)
91 (* ----The ANL version of this problem includes the idempotence lemmas *)
93 (* input_clause(idempotence_of_add,axiom, *)
95 (* [++equal(add(X,X),X)]). *)
97 (* input_clause(idempotence_of_multiply,axiom, *)
99 (* [++equal(multiply(X,X),X)]). *)
100 ntheorem prove_associativity:
101 (∀Univ:Type.∀X:Univ.∀Y:Univ.∀Z:Univ.
103 ∀add:∀_:Univ.∀_:Univ.Univ.
104 ∀additive_identity:Univ.
107 ∀inverse:∀_:Univ.Univ.
108 ∀multiplicative_identity:Univ.
109 ∀multiply:∀_:Univ.∀_:Univ.Univ.
110 ∀H0:∀X:Univ.eq Univ (add additive_identity X) X.
111 ∀H1:∀X:Univ.eq Univ (add X additive_identity) X.
112 ∀H2:∀X:Univ.eq Univ (multiply multiplicative_identity X) X.
113 ∀H3:∀X:Univ.eq Univ (multiply X multiplicative_identity) X.
114 ∀H4:∀X:Univ.eq Univ (multiply (inverse X) X) additive_identity.
115 ∀H5:∀X:Univ.eq Univ (multiply X (inverse X)) additive_identity.
116 ∀H6:∀X:Univ.eq Univ (add (inverse X) X) multiplicative_identity.
117 ∀H7:∀X:Univ.eq Univ (add X (inverse X)) multiplicative_identity.
118 ∀H8:∀X:Univ.∀Y:Univ.∀Z:Univ.eq Univ (multiply X (add Y Z)) (add (multiply X Y) (multiply X Z)).
119 ∀H9:∀X:Univ.∀Y:Univ.∀Z:Univ.eq Univ (multiply (add X Y) Z) (add (multiply X Z) (multiply Y Z)).
120 ∀H10:∀X:Univ.∀Y:Univ.∀Z:Univ.eq Univ (add X (multiply Y Z)) (multiply (add X Y) (add X Z)).
121 ∀H11:∀X:Univ.∀Y:Univ.∀Z:Univ.eq Univ (add (multiply X Y) Z) (multiply (add X Z) (add Y Z)).
122 ∀H12:∀X:Univ.∀Y:Univ.eq Univ (multiply X Y) (multiply Y X).
123 ∀H13:∀X:Univ.∀Y:Univ.eq Univ (add X Y) (add Y X).eq Univ (add a (add b c)) (add (add a b) c))
131 #additive_identity ##.
135 #multiplicative_identity ##.
151 nauto by H0,H1,H2,H3,H4,H5,H6,H7,H8,H9,H10,H11,H12,H13 ##;
152 ntry (nassumption) ##;
155 (* -------------------------------------------------------------------------- *)