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