]> matita.cs.unibo.it Git - helm.git/blob - matita/tests/TPTP/Veloci/RNG008-4.p.ma
tagged 0.5.0-rc1
[helm.git] / matita / tests / TPTP / Veloci / RNG008-4.p.ma
1
2 include "logic/equality.ma".
3 (* Inclusion of: RNG008-4.p *)
4 (* -------------------------------------------------------------------------- *)
5 (*  File     : RNG008-4 : TPTP v3.1.1. Released v1.0.0. *)
6 (*  Domain   : Ring Theory *)
7 (*  Problem  : Boolean rings are commutative *)
8 (*  Version  : [PS81] (equality) axioms. *)
9 (*             Theorem formulation : Equality. *)
10 (*  English  : Given a ring in which for all x, x * x = x, prove that for  *)
11 (*             all x and y, x * y = y * x. *)
12 (*  Refs     : [MOW76] McCharen et al. (1976), Problems and Experiments for a *)
13 (*           : [PS81]  Peterson & Stickel (1981), Complete Sets of Reductions *)
14 (*  Source   : [TPTP] *)
15 (*  Names    :  *)
16 (*  Status   : Unsatisfiable *)
17 (*  Rating   : 0.07 v3.1.0, 0.11 v2.7.0, 0.00 v2.2.1, 0.22 v2.2.0, 0.29 v2.1.0, 0.25 v2.0.0 *)
18 (*  Syntax   : Number of clauses     :   17 (   0 non-Horn;  17 unit;   3 RR) *)
19 (*             Number of atoms       :   17 (  17 equality) *)
20 (*             Maximal clause size   :    1 (   1 average) *)
21 (*             Number of predicates  :    1 (   0 propositional; 2-2 arity) *)
22 (*             Number of functors    :    7 (   4 constant; 0-2 arity) *)
23 (*             Number of variables   :   26 (   2 singleton) *)
24 (*             Maximal term depth    :    3 (   2 average) *)
25 (*  Comments :  *)
26 (* -------------------------------------------------------------------------- *)
27 (* ----Include ring theory axioms  *)
28 (* Inclusion of: Axioms/RNG002-0.ax *)
29 (* -------------------------------------------------------------------------- *)
30 (*  File     : RNG002-0 : TPTP v3.1.1. Released v1.0.0. *)
31 (*  Domain   : Ring Theory *)
32 (*  Axioms   : Ring theory (equality) axioms *)
33 (*  Version  : [PS81] (equality) axioms : *)
34 (*             Reduced & Augmented > Complete. *)
35 (*  English  :  *)
36 (*  Refs     : [PS81]  Peterson & Stickel (1981), Complete Sets of Reductions *)
37 (*  Source   : [ANL] *)
38 (*  Names    :  *)
39 (*  Status   :  *)
40 (*  Syntax   : Number of clauses    :   14 (   0 non-Horn;  14 unit;   1 RR) *)
41 (*             Number of literals   :   14 (  14 equality) *)
42 (*             Maximal clause size  :    1 (   1 average) *)
43 (*             Number of predicates :    1 (   0 propositional; 2-2 arity) *)
44 (*             Number of functors   :    4 (   1 constant; 0-2 arity) *)
45 (*             Number of variables  :   25 (   2 singleton) *)
46 (*             Maximal term depth   :    3 (   2 average) *)
47 (*  Comments : Not sure if these are complete. I don't know if the reductions *)
48 (*             given in [PS81] are suitable for ATP. *)
49 (* -------------------------------------------------------------------------- *)
50 (* ----Existence of left identity for addition  *)
51 (* ----Existence of left additive additive_inverse  *)
52 (* ----Distributive property of product over sum  *)
53 (* ----Inverse of identity is identity, stupid  *)
54 (* ----Inverse of additive_inverse of X is X  *)
55 (* ----Behavior of 0 and the multiplication operation  *)
56 (* ----Inverse of (x + y) is additive_inverse(x) + additive_inverse(y)  *)
57 (* ----x * additive_inverse(y) = additive_inverse (x * y)  *)
58 (* ----Associativity of addition  *)
59 (* ----Commutativity of addition  *)
60 (* ----Associativity of product  *)
61 (* -------------------------------------------------------------------------- *)
62 (* -------------------------------------------------------------------------- *)
63 theorem prove_commutativity:
64  \forall Univ:Set.
65 \forall a:Univ.
66 \forall add:\forall _:Univ.\forall _:Univ.Univ.
67 \forall additive_identity:Univ.
68 \forall additive_inverse:\forall _:Univ.Univ.
69 \forall b:Univ.
70 \forall c:Univ.
71 \forall multiply:\forall _:Univ.\forall _:Univ.Univ.
72 \forall H0:eq Univ (multiply a b) c.
73 \forall H1:\forall X:Univ.eq Univ (multiply X X) X.
74 \forall H2:\forall X:Univ.\forall Y:Univ.\forall Z:Univ.eq Univ (multiply (multiply X Y) Z) (multiply X (multiply Y Z)).
75 \forall H3:\forall X:Univ.\forall Y:Univ.eq Univ (add X Y) (add Y X).
76 \forall H4:\forall X:Univ.\forall Y:Univ.\forall Z:Univ.eq Univ (add (add X Y) Z) (add X (add Y Z)).
77 \forall H5:\forall X:Univ.\forall Y:Univ.eq Univ (multiply (additive_inverse X) Y) (additive_inverse (multiply X Y)).
78 \forall H6:\forall X:Univ.\forall Y:Univ.eq Univ (multiply X (additive_inverse Y)) (additive_inverse (multiply X Y)).
79 \forall H7:\forall X:Univ.\forall Y:Univ.eq Univ (additive_inverse (add X Y)) (add (additive_inverse X) (additive_inverse Y)).
80 \forall H8:\forall X:Univ.eq Univ (multiply additive_identity X) additive_identity.
81 \forall H9:\forall X:Univ.eq Univ (multiply X additive_identity) additive_identity.
82 \forall H10:\forall X:Univ.eq Univ (additive_inverse (additive_inverse X)) X.
83 \forall H11:eq Univ (additive_inverse additive_identity) additive_identity.
84 \forall H12:\forall X:Univ.\forall Y:Univ.\forall Z:Univ.eq Univ (multiply (add X Y) Z) (add (multiply X Z) (multiply Y Z)).
85 \forall H13:\forall X:Univ.\forall Y:Univ.\forall Z:Univ.eq Univ (multiply X (add Y Z)) (add (multiply X Y) (multiply X Z)).
86 \forall H14:\forall X:Univ.eq Univ (add (additive_inverse X) X) additive_identity.
87 \forall H15:\forall X:Univ.eq Univ (add additive_identity X) X.eq Univ (multiply b a) c
88 .
89 intros.
90 autobatch paramodulation timeout=100;
91 try assumption.
92 print proofterm.
93 qed.
94 (* -------------------------------------------------------------------------- *)