]> matita.cs.unibo.it Git - helm.git/commitdiff
Renamed SK.ma into bool.ma
authorAndrea Asperti <andrea.asperti@unibo.it>
Mon, 20 Mar 2006 16:32:32 +0000 (16:32 +0000)
committerAndrea Asperti <andrea.asperti@unibo.it>
Mon, 20 Mar 2006 16:32:32 +0000 (16:32 +0000)
matita/tests/SK.ma [deleted file]
matita/tests/bool.ma [new file with mode: 0644]

diff --git a/matita/tests/SK.ma b/matita/tests/SK.ma
deleted file mode 100644 (file)
index 1b09520..0000000
+++ /dev/null
@@ -1,645 +0,0 @@
-(**************************************************************************)
-(*       ___                                                              *)
-(*      ||M||                                                             *)
-(*      ||A||       A project by Andrea Asperti                           *)
-(*      ||T||                                                             *)
-(*      ||I||       Developers:                                           *)
-(*      ||T||         The HELM team.                                      *)
-(*      ||A||         http://helm.cs.unibo.it                             *)
-(*      \   /                                                             *)
-(*       \ /        This file is distributed under the terms of the       *)
-(*        v         GNU General Public License Version 2                  *)
-(*                                                                        *)
-(**************************************************************************)
-
-set "baseuri" "cic:/matita/SK/".
-
-include "legacy/coq.ma".
-
-alias id "nat" = "cic:/Coq/Init/Datatypes/nat.ind#xpointer(1/1)".
-alias id "eq" = "cic:/Coq/Init/Logic/eq.ind#xpointer(1/1)".
-alias id "eq_ind" = "cic:/Coq/Init/Logic/eq_ind.con".
-alias id "eq_ind_r" = "cic:/Coq/Init/Logic/eq_ind_r.con".
-alias id "sym_eq" = "cic:/Coq/Init/Logic/sym_eq.con".
-
-theorem SKK:
-  \forall A:Set.
-  \forall app: A \to A \to A.
-  \forall K:A. 
-  \forall S:A.
-  \forall H1: (\forall x,y:A.(app (app K x) y) = x).
-  \forall H2: (\forall x,y,z:A.
-    (app (app (app S x) y) z) = (app (app x z) (app y z))).
-  \forall x:A.
-    (app (app (app S K) K) x) = x.
-intros.auto paramodulation.
-qed.
-
-theorem bool1:
-  \forall A:Set.
-  \forall one:A.
-  \forall zero:A.
-  \forall add: A \to A \to A.
-  \forall mult: A \to A \to A.
-  \forall inv: A \to A.
-  \forall c1:(\forall x,y:A.(add x y) = (add y x)). 
-  \forall c2:(\forall x,y:A.(mult x y) = (mult y x)). 
-  \forall d1: (\forall x,y,z:A.
-              (add x (mult y z)) = (mult (add x y) (add x z))).
-  \forall d2: (\forall x,y,z:A.
-              (mult x (add y z)) = (add (mult x y) (mult x z))).  
-  \forall i1: (\forall x:A. (add x zero) = x).
-  \forall i2: (\forall x:A. (mult x one) = x).   
-  \forall inv1: (\forall x:A. (add x (inv x)) = one).  
-  \forall inv2: (\forall x:A. (mult x (inv x)) = zero). 
-  (inv zero) = one.
-intros.auto paramodulation.
-qed.
-  
-theorem bool2:
-  \forall A:Set.
-  \forall one:A.
-  \forall zero:A.
-  \forall add: A \to A \to A.
-  \forall mult: A \to A \to A.
-  \forall inv: A \to A.
-  \forall c1:(\forall x,y:A.(add x y) = (add y x)). 
-  \forall c2:(\forall x,y:A.(mult x y) = (mult y x)). 
-  \forall d1: (\forall x,y,z:A.
-              (add x (mult y z)) = (mult (add x y) (add x z))).
-  \forall d2: (\forall x,y,z:A.
-              (mult x (add y z)) = (add (mult x y) (mult x z))).  
-  \forall i1: (\forall x:A. (add x zero) = x).
-  \forall i2: (\forall x:A. (mult x one) = x).   
-  \forall inv1: (\forall x:A. (add x (inv x)) = one).  
-  \forall inv2: (\forall x:A. (mult x (inv x)) = zero).
-  \forall x:A. (mult x zero) = zero.
-intros.auto paramodulation.
-qed.
-
-theorem bool3:
-  \forall A:Set.
-  \forall one:A.
-  \forall zero:A.
-  \forall add: A \to A \to A.
-  \forall mult: A \to A \to A.
-  \forall inv: A \to A.
-  \forall c1:(\forall x,y:A.(add x y) = (add y x)). 
-  \forall c2:(\forall x,y:A.(mult x y) = (mult y x)). 
-  \forall d1: (\forall x,y,z:A.
-              (add x (mult y z)) = (mult (add x y) (add x z))).
-  \forall d2: (\forall x,y,z:A.
-              (mult x (add y z)) = (add (mult x y) (mult x z))).  
-  \forall i1: (\forall x:A. (add x zero) = x).
-  \forall i2: (\forall x:A. (mult x one) = x).   
-  \forall inv1: (\forall x:A. (add x (inv x)) = one).  
-  \forall inv2: (\forall x:A. (mult x (inv x)) = zero).
-  \forall x:A. (inv (inv x)) = x.
-intros.auto paramodulation.
-qed.
-
-theorem bool266:
-  \forall A:Set.
-  \forall one:A.
-  \forall zero:A.
-  \forall add: A \to A \to A.
-  \forall mult: A \to A \to A.
-  \forall inv: A \to A.
-  \forall c1:(\forall x,y:A.(add x y) = (add y x)). 
-  \forall c2:(\forall x,y:A.(mult x y) = (mult y x)). 
-  \forall d1: (\forall x,y,z:A.
-              (add x (mult y z)) = (mult (add x y) (add x z))).
-  \forall d2: (\forall x,y,z:A.
-              (mult x (add y z)) = (add (mult x y) (mult x z))).  
-  \forall i1: (\forall x:A. (add x zero) = x).
-  \forall i2: (\forall x:A. (mult x one) = x).   
-  \forall inv1: (\forall x:A. (add x (inv x)) = one).  
-  \forall inv2: (\forall x:A. (mult x (inv x)) = zero).
-  \forall x,y:A. (mult x (add (inv x) y)) = (mult x y).
-intros.auto paramodulation.
-qed.
-
-theorem bool507:
-  \forall A:Set.
-  \forall one:A.
-  \forall zero:A.
-  \forall add: A \to A \to A.
-  \forall mult: A \to A \to A.
-  \forall inv: A \to A.
-  \forall c1:(\forall x,y:A.(add x y) = (add y x)). 
-  \forall c2:(\forall x,y:A.(mult x y) = (mult y x)). 
-  \forall d1: (\forall x,y,z:A.
-              (add x (mult y z)) = (mult (add x y) (add x z))).
-  \forall d2: (\forall x,y,z:A.
-              (mult x (add y z)) = (add (mult x y) (mult x z))).  
-  \forall i1: (\forall x:A. (add x zero) = x).
-  \forall i2: (\forall x:A. (mult x one) = x).   
-  \forall inv1: (\forall x:A. (add x (inv x)) = one).  
-  \forall inv2: (\forall x:A. (mult x (inv x)) = zero).
-  \forall x,y:A. zero = (mult x (mult (inv x) y)).
-intros.auto paramodulation.
-qed.
-
-theorem bool515:
-  \forall A:Set.
-  \forall one:A.
-  \forall zero:A.
-  \forall add: A \to A \to A.
-  \forall mult: A \to A \to A.
-  \forall inv: A \to A.
-  \forall c1:(\forall x,y:A.(add x y) = (add y x)). 
-  \forall c2:(\forall x,y:A.(mult x y) = (mult y x)). 
-  \forall d1: (\forall x,y,z:A.
-              (add x (mult y z)) = (mult (add x y) (add x z))).
-  \forall d2: (\forall x,y,z:A.
-              (mult x (add y z)) = (add (mult x y) (mult x z))).  
-  \forall i1: (\forall x:A. (add x zero) = x).
-  \forall i2: (\forall x:A. (mult x one) = x).   
-  \forall inv1: (\forall x:A. (add x (inv x)) = one).  
-  \forall inv2: (\forall x:A. (mult x (inv x)) = zero).
-  \forall x,y:A. zero = mult (inv x) (mult x y).
-intros.auto paramodulation.
-qed.
-
-theorem bool304:
-  \forall A:Set.
-  \forall one:A.
-  \forall zero:A.
-  \forall add: A \to A \to A.
-  \forall mult: A \to A \to A.
-  \forall inv: A \to A.
-  \forall c1:(\forall x,y:A.(add x y) = (add y x)). 
-  \forall c2:(\forall x,y:A.(mult x y) = (mult y x)). 
-  \forall d1: (\forall x,y,z:A.
-              (add x (mult y z)) = (mult (add x y) (add x z))).
-  \forall d2: (\forall x,y,z:A.
-              (mult x (add y z)) = (add (mult x y) (mult x z))).  
-  \forall i1: (\forall x:A. (add x zero) = x).
-  \forall i2: (\forall x:A. (mult x one) = x).   
-  \forall inv1: (\forall x:A. (add x (inv x)) = one).  
-  \forall inv2: (\forall x:A. (mult x (inv x)) = zero).
-  \forall x,y:A. x = (mult (add y x) x).
-intros.auto paramodulation.
-qed.
-
-theorem bool531:
-  \forall A:Set.
-  \forall one:A.
-  \forall zero:A.
-  \forall add: A \to A \to A.
-  \forall mult: A \to A \to A.
-  \forall inv: A \to A.
-  \forall c1:(\forall x,y:A.(add x y) = (add y x)). 
-  \forall c2:(\forall x,y:A.(mult x y) = (mult y x)). 
-  \forall d1: (\forall x,y,z:A.
-              (add x (mult y z)) = (mult (add x y) (add x z))).
-  \forall d2: (\forall x,y,z:A.
-              (mult x (add y z)) = (add (mult x y) (mult x z))).  
-  \forall i1: (\forall x:A. (add x zero) = x).
-  \forall i2: (\forall x:A. (mult x one) = x).   
-  \forall inv1: (\forall x:A. (add x (inv x)) = one).  
-  \forall inv2: (\forall x:A. (mult x (inv x)) = zero).
-  \forall x,y:A. zero = (mult (inv (add x y)) y).
-intros.auto paramodulation.
-qed.
-
-theorem bool253:
-  \forall A:Set.
-  \forall one:A.
-  \forall zero:A.
-  \forall add: A \to A \to A.
-  \forall mult: A \to A \to A.
-  \forall inv: A \to A.
-  \forall c1:(\forall x,y:A.(add x y) = (add y x)). 
-  \forall c2:(\forall x,y:A.(mult x y) = (mult y x)). 
-  \forall d1: (\forall x,y,z:A.
-              (add x (mult y z)) = (mult (add x y) (add x z))).
-  \forall d2: (\forall x,y,z:A.
-              (mult x (add y z)) = (add (mult x y) (mult x z))).  
-  \forall i1: (\forall x:A. (add x zero) = x).
-  \forall i2: (\forall x:A. (mult x one) = x).   
-  \forall inv1: (\forall x:A. (add x (inv x)) = one).  
-  \forall inv2: (\forall x:A. (mult x (inv x)) = zero).
-  \forall x,y:A. (add (inv x) (mult y x)) = (add (inv x) y).
-intros.auto paramodulation.
-qed.
-
-theorem bool557:
-  \forall A:Set.
-  \forall one:A.
-  \forall zero:A.
-  \forall add: A \to A \to A.
-  \forall mult: A \to A \to A.
-  \forall inv: A \to A.
-  \forall c1:(\forall x,y:A.(add x y) = (add y x)). 
-  \forall c2:(\forall x,y:A.(mult x y) = (mult y x)). 
-  \forall d1: (\forall x,y,z:A.
-              (add x (mult y z)) = (mult (add x y) (add x z))).
-  \forall d2: (\forall x,y,z:A.
-              (mult x (add y z)) = (add (mult x y) (mult x z))).  
-  \forall i1: (\forall x:A. (add x zero) = x).
-  \forall i2: (\forall x:A. (mult x one) = x).   
-  \forall inv1: (\forall x:A. (add x (inv x)) = one).  
-  \forall inv2: (\forall x:A. (mult x (inv x)) = zero). 
-  (*
-  \forall hint1: (\forall x,y:A. (add (inv x) (mult y x)) = (add (inv x) y)).
-  \forall hint2: \forall x,y:A.zero = (mult (inv x) (mult x y)). 
-  \forall hint2: (\forall x,y:A. zero = (mult (inv (add x y)) y)).
-  *)
-  \forall x,y:A. 
-    inv x =  (add (inv x) (inv (add y x))).
-intros.auto paramodulation.
-qed.
-
-theorem bool609:
-  \forall A:Set.
-  \forall one:A.
-  \forall zero:A.
-  \forall add: A \to A \to A.
-  \forall mult: A \to A \to A.
-  \forall inv: A \to A.
-  \forall c1:(\forall x,y:A.(add x y) = (add y x)). 
-  \forall c2:(\forall x,y:A.(mult x y) = (mult y x)). 
-  \forall d1: (\forall x,y,z:A.
-              (add x (mult y z)) = (mult (add x y) (add x z))).
-  \forall d2: (\forall x,y,z:A.
-              (mult x (add y z)) = (add (mult x y) (mult x z))).  
-  \forall i1: (\forall x:A. (add x zero) = x).
-  \forall i2: (\forall x:A. (mult x one) = x).   
-  \forall inv1: (\forall x:A. (add x (inv x)) = one).  
-  \forall inv2: (\forall x:A. (mult x (inv x)) = zero). 
-  (*
-  \forall hint1: (\forall x,y:A. (add (inv x) (mult y x)) = (add (inv x) y)).
-  \forall hint2: \forall x,y:A.zero = (mult (inv x) (mult x y)). 
-  \forall hint2: (\forall x,y:A. zero = (mult (inv (add x y)) y)).
-  *)
-  \forall x,y:A. 
-    inv x =  (add (inv (add y x)) (inv x)).
-intros.auto paramodulation.
-qed.
-(*
-theorem bool260:
-  \forall A:Set.
-  \forall one:A.
-  \forall zero:A.
-  \forall add: A \to A \to A.
-  \forall mult: A \to A \to A.
-  \forall inv: A \to A.
-  \forall c1:(\forall x,y:A.(add x y) = (add y x)). 
-  \forall c2:(\forall x,y:A.(mult x y) = (mult y x)). 
-  \forall d1: (\forall x,y,z:A.
-              (add x (mult y z)) = (mult (add x y) (add x z))).
-  \forall d2: (\forall x,y,z:A.
-              (mult x (add y z)) = (add (mult x y) (mult x z))).  
-  \forall i1: (\forall x:A. (add x zero) = x).
-  \forall i2: (\forall x:A. (mult x one) = x).   
-  \forall inv1: (\forall x:A. (add x (inv x)) = one).  
-  \forall inv2: (\forall x:A. (mult x (inv x)) = zero). 
-  \forall x,y,z:A. 
-    add x (mult x y) = mult x (add x y).
-intros.auto paramodulation.
-qed.
-
-theorem bool276:
-  \forall A:Set.
-  \forall one:A.
-  \forall zero:A.
-  \forall add: A \to A \to A.
-  \forall mult: A \to A \to A.
-  \forall inv: A \to A.
-  \forall c1:(\forall x,y:A.(add x y) = (add y x)). 
-  \forall c2:(\forall x,y:A.(mult x y) = (mult y x)). 
-  \forall d1: (\forall x,y,z:A.
-              (add x (mult y z)) = (mult (add x y) (add x z))).
-  \forall d2: (\forall x,y,z:A.
-              (mult x (add y z)) = (add (mult x y) (mult x z))).  
-  \forall i1: (\forall x:A. (add x zero) = x).
-  \forall i2: (\forall x:A. (mult x one) = x).   
-  \forall inv1: (\forall x:A. (add x (inv x)) = one).  
-  \forall inv2: (\forall x:A. (mult x (inv x)) = zero). 
-  \forall x,y,z,u:A. 
-    (mult (add x y) (add z (add x u))) = (add (mult (add x y) z) (add x (mult y u))).
-intros.auto paramodulation.
-qed. 
-
-theorem bool250:
-  \forall A:Set.
-  \forall one:A.
-  \forall zero:A.
-  \forall add: A \to A \to A.
-  \forall mult: A \to A \to A.
-  \forall inv: A \to A.
-  \forall c1:(\forall x,y:A.(add x y) = (add y x)). 
-  \forall c2:(\forall x,y:A.(mult x y) = (mult y x)). 
-  \forall d1: (\forall x,y,z:A.
-              (add x (mult y z)) = (mult (add x y) (add x z))).
-  \forall d2: (\forall x,y,z:A.
-              (mult x (add y z)) = (add (mult x y) (mult x z))).  
-  \forall i1: (\forall x:A. (add x zero) = x).
-  \forall i2: (\forall x:A. (mult x one) = x).   
-  \forall inv1: (\forall x:A. (add x (inv x)) = one).  
-  \forall inv2: (\forall x:A. (mult x (inv x)) = zero). 
-  \forall x,y,z:A. 
-    add x (mult y z) = mult (add y x) (add x z).
-intros.auto paramodulation.
-qed. 
-
-theorem bool756minimal:
-  \forall A:Set.
-  \forall add: A \to A \to A.
-  \forall mult: A \to A \to A.
-  \forall c1:(\forall x,y:A.(add x y) = (add y x)). 
-  \forall hint1: (\forall x,y,z,u:A. 
-    add y (add x (mult x u)) = (add (mult (add x y) z) (add x (mult y u)))).
-  \forall hint2: (\forall x,y:A. x = (mult (add y x) x)).
-  \forall x,y,z:A. 
-    add x (add y (mult y z)) = add x (add y (mult x z)).
-intros;
-auto paramodulation.
-qed.
-
-theorem bool756simplified:
-  \forall A:Set.
-  \forall add: A \to A \to A.
-  \forall mult: A \to A \to A.
-  \forall c1:(\forall x,y:A.(add x y) = (add y x)). 
-  \forall c2:(\forall x,y:A.(mult x y) = (mult y x)). 
-  \forall hint1: (\forall x,y,z,u:A. 
-    (mult (add x y) (add z (add x u))) = (add (mult (add x y) z) (add x (mult y u)))).
-  \forall hint2: (\forall x,y:A. x = (mult (add y x) x)).
-  \forall hint3: (\forall x,y,z:A. 
-    add x (mult y z) = mult (add y x) (add x z)).
-  \forall hint4: (\forall x,y:A. 
-    add x (mult x y) = mult x (add x y)).
-  \forall x,y,z:A. 
-    add x (add y (mult y z)) = add x (add y (mult x z)).
-intros;
-auto paramodulation.
-qed.
-(* 46 sec. *)
-
-theorem bool756:
-  \forall A:Set.
-  \forall one:A.
-  \forall zero:A.
-  \forall add: A \to A \to A.
-  \forall mult: A \to A \to A.
-  \forall inv: A \to A.
-  \forall c1:(\forall x,y:A.(add x y) = (add y x)). 
-  \forall c2:(\forall x,y:A.(mult x y) = (mult y x)). 
-  \forall d1: (\forall x,y,z:A.
-              (add x (mult y z)) = (mult (add x y) (add x z))).
-  \forall d2: (\forall x,y,z:A.
-              (mult x (add y z)) = (add (mult x y) (mult x z))).  
-  \forall i1: (\forall x:A. (add x zero) = x).
-  \forall i2: (\forall x:A. (mult x one) = x).   
-  \forall inv1: (\forall x:A. (add x (inv x)) = one).  
-  \forall inv2: (\forall x:A. (mult x (inv x)) = zero). 
-  \forall hint1: (\forall x,y,z,u:A. 
-    (mult (add x y) (add z (add x u))) = (add (mult (add x y) z) (add x (mult y u)))).
-  \forall hint2: (\forall x,y:A. x = (mult (add y x) x)).
-  \forall hint3: (\forall x,y,z:A. 
-    add x (mult y z) = mult (add y x) (add x z)).
-  \forall hint4: (\forall x,y:A. 
-    add x (mult x y) = mult x (add x y)).
-  \forall x,y,z:A. 
-    add x y = add x (add y (mult x z)).
-intros;
-cut (mult (add y x) (add x (add y z)) = add x (add y (mult x z)));
-[auto paramodulation
-|auto paramodulation]
-qed.
-(*  186 sec *)
-*)
-theorem bool756full:
-  \forall A:Set.
-  \forall one:A.
-  \forall zero:A.
-  \forall add: A \to A \to A.
-  \forall mult: A \to A \to A.
-  \forall inv: A \to A.
-  \forall c1:(\forall x,y:A.(add x y) = (add y x)). 
-  \forall c2:(\forall x,y:A.(mult x y) = (mult y x)). 
-  \forall d1: (\forall x,y,z:A.
-              (add x (mult y z)) = (mult (add x y) (add x z))).
-  \forall d2: (\forall x,y,z:A.
-              (mult x (add y z)) = (add (mult x y) (mult x z))).  
-  \forall i1: (\forall x:A. (add x zero) = x).
-  \forall i2: (\forall x:A. (mult x one) = x).   
-  \forall inv1: (\forall x:A. (add x (inv x)) = one).  
-  \forall inv2: (\forall x:A. (mult x (inv x)) = zero). 
-  \forall x,y,z:A. 
-    add x y = add x (add y (mult x z)).
-intros;auto paramodulation.
-qed.
-(* war=5; active 225, maxmeta 172568 *)
-(* war=4; active 249, maxmeta 223220 *)
-(*
-theorem bool1164:
-  \forall A:Set.
-  \forall one:A.
-  \forall zero:A.
-  \forall add: A \to A \to A.
-  \forall mult: A \to A \to A.
-  \forall inv: A \to A.
-  \forall c1:(\forall x,y:A.(add x y) = (add y x)). 
-  \forall c2:(\forall x,y:A.(mult x y) = (mult y x)). 
-  \forall d1: (\forall x,y,z:A.
-              (add x (mult y z)) = (mult (add x y) (add x z))).
-  \forall d2: (\forall x,y,z:A.
-              (mult x (add y z)) = (add (mult x y) (mult x z))).  
-  \forall i1: (\forall x:A. (add x zero) = x).
-  \forall i2: (\forall x:A. (mult x one) = x).   
-  \forall inv1: (\forall x:A. (add x (inv x)) = one).  
-  \forall inv2: (\forall x:A. (mult x (inv x)) = zero). 
-  \forall x,y,z:A.
-    (add x y) = (add (add x (mult y z)) y).
-intros.auto paramodulation.
-qed.
-
-theorem bool1230:
-  \forall A:Set.
-  \forall one:A.
-  \forall zero:A.
-  \forall add: A \to A \to A.
-  \forall mult: A \to A \to A.
-  \forall inv: A \to A.
-  \forall c1:(\forall x,y:A.(add x y) = (add y x)). 
-  \forall c2:(\forall x,y:A.(mult x y) = (mult y x)). 
-  \forall d1: (\forall x,y,z:A.
-              (add x (mult y z)) = (mult (add x y) (add x z))).
-  \forall d2: (\forall x,y,z:A.
-              (mult x (add y z)) = (add (mult x y) (mult x z))).  
-  \forall i1: (\forall x:A. (add x zero) = x).
-  \forall i2: (\forall x:A. (mult x one) = x).   
-  \forall inv1: (\forall x:A. (add x (inv x)) = one).  
-  \forall inv2: (\forall x:A. (mult x (inv x)) = zero). 
-  \forall x,y,z:A.
-  \forall c1z: (\forall x:A.(add x z) = (add z x)). 
-    add (add x y) z = add (add x y) (add z y).
-intros.auto paramodulation.
-qed.
-
-theorem bool1230:
-  \forall A:Set.
-  \forall one:A.
-  \forall zero:A.
-  \forall add: A \to A \to A.
-  \forall mult: A \to A \to A.
-  \forall inv: A \to A.
-  \forall c1:(\forall x,y:A.(add x y) = (add y x)). 
-  \forall c2:(\forall x,y:A.(mult x y) = (mult y x)). 
-  \forall d1: (\forall x,y,z:A.
-              (add x (mult y z)) = (mult (add x y) (add x z))).
-  \forall d2: (\forall x,y,z:A.
-              (mult x (add y z)) = (add (mult x y) (mult x z))).  
-  \forall i1: (\forall x:A. (add x zero) = x).
-  \forall i2: (\forall x:A. (mult x one) = x).   
-  \forall inv1: (\forall x:A. (add x (inv x)) = one).  
-  \forall inv2: (\forall x:A. (mult x (inv x)) = zero). 
-  \forall x,y,z:A.
-    add (add x y) z = add (add x y) (add z y).
-intros.auto paramodulation.
-qed.
-
-theorem bool1372:
-  \forall A:Set.
-  \forall one:A.
-  \forall zero:A.
-  \forall add: A \to A \to A.
-  \forall mult: A \to A \to A.
-  \forall inv: A \to A.
-  \forall c1:(\forall x,y:A.(add x y) = (add y x)). 
-  \forall c2:(\forall x,y:A.(mult x y) = (mult y x)). 
-  \forall d1: (\forall x,y,z:A.
-              (add x (mult y z)) = (mult (add x y) (add x z))).
-  \forall d2: (\forall x,y,z:A.
-              (mult x (add y z)) = (add (mult x y) (mult x z))).  
-  \forall i1: (\forall x:A. (add x zero) = x).
-  \forall i2: (\forall x:A. (mult x one) = x).   
-  \forall inv1: (\forall x:A. (add x (inv x)) = one).  
-  \forall inv2: (\forall x:A. (mult x (inv x)) = zero). 
-  \forall x,y,z:A.
-    add x (add y z) = add (add x z) y.
-intros.auto paramodulation.
-qed.*)
-
-theorem bool381:
-  \forall A:Set.
-  \forall one:A.
-  \forall zero:A.
-  \forall add: A \to A \to A.
-  \forall mult: A \to A \to A.
-  \forall inv: A \to A.
-  \forall c1:(\forall x,y:A.(add x y) = (add y x)). 
-  \forall c2:(\forall x,y:A.(mult x y) = (mult y x)). 
-  \forall d1: (\forall x,y,z:A.
-              (add x (mult y z)) = (mult (add x y) (add x z))).
-  \forall d2: (\forall x,y,z:A.
-              (mult x (add y z)) = (add (mult x y) (mult x z))).  
-  \forall i1: (\forall x:A. (add x zero) = x).
-  \forall i2: (\forall x:A. (mult x one) = x).   
-  \forall inv1: (\forall x:A. (add x (inv x)) = one).  
-  \forall inv2: (\forall x:A. (mult x (inv x)) = zero). 
-  \forall x,y:A.
-      add (inv x) y = add (mult x y) (inv x).
-intros.auto paramodulation.
-qed.
-
-theorem bool5hint1:
-  \forall A:Set.
-  \forall one:A.
-  \forall zero:A.
-  \forall add: A \to A \to A.
-  \forall mult: A \to A \to A.
-  \forall inv: A \to A.
-  \forall c1:(\forall x,y:A.(add x y) = (add y x)). 
-  \forall c2:(\forall x,y:A.(mult x y) = (mult y x)). 
-  \forall d1: (\forall x,y,z:A.
-              (add x (mult y z)) = (mult (add x y) (add x z))).
-  \forall d2: (\forall x,y,z:A.
-              (mult x (add y z)) = (add (mult x y) (mult x z))).  
-  \forall i1: (\forall x:A. (add x zero) = x).
-  \forall i2: (\forall x:A. (mult x one) = x).   
-  \forall inv1: (\forall x:A. (add x (inv x)) = one).  
-  \forall inv2: (\forall x:A. (mult x (inv x)) = zero). 
-  \forall hint1731:(\forall x,y:A. add (inv (add x y)) y = add y (inv x)).
-  \forall hint1735:(\forall x,y:A. add (inv (add x y)) x = add x (inv y)).
-  \forall hint623:(\forall x,y:A. inv (mult x y) = add (inv x) (inv (mult x y))).
-  \forall x,y:A.
-    (inv (mult x y)) = (add (inv x) (inv y)).
-intros.auto paramodulation.
-qed.
-(* 90 *)
-
-theorem bool5hint2:
-  \forall A:Set.
-  \forall one:A.
-  \forall zero:A.
-  \forall add: A \to A \to A.
-  \forall mult: A \to A \to A.
-  \forall inv: A \to A.
-  \forall c1:(\forall x,y:A.(add x y) = (add y x)). 
-  \forall c2:(\forall x,y:A.(mult x y) = (mult y x)). 
-  \forall d1: (\forall x,y,z:A.
-              (add x (mult y z)) = (mult (add x y) (add x z))).
-  \forall d2: (\forall x,y,z:A.
-              (mult x (add y z)) = (add (mult x y) (mult x z))).  
-  \forall i1: (\forall x:A. (add x zero) = x).
-  \forall i2: (\forall x:A. (mult x one) = x).   
-  \forall inv1: (\forall x:A. (add x (inv x)) = one).  
-  \forall inv2: (\forall x:A. (mult x (inv x)) = zero). 
-  \forall hint1731:(\forall x,y:A. add (inv (add x y)) y = add y (inv x)).
-  \forall hint623:(\forall x,y:A. inv (mult x y) = add (inv x) (inv (mult x y))).
-  \forall x,y:A.
-    (inv (mult x y)) = (add (inv x) (inv y)).
-intros.auto paramodulation.
-qed.
-(* 41 *)
-
-theorem bool5hint3:
-  \forall A:Set.
-  \forall one:A.
-  \forall zero:A.
-  \forall add: A \to A \to A.
-  \forall mult: A \to A \to A.
-  \forall inv: A \to A.
-  \forall c1:(\forall x,y:A.(add x y) = (add y x)). 
-  \forall c2:(\forall x,y:A.(mult x y) = (mult y x)). 
-  \forall d1: (\forall x,y,z:A.
-              (add x (mult y z)) = (mult (add x y) (add x z))).
-  \forall d2: (\forall x,y,z:A.
-              (mult x (add y z)) = (add (mult x y) (mult x z))).  
-  \forall i1: (\forall x:A. (add x zero) = x).
-  \forall i2: (\forall x:A. (mult x one) = x).   
-  \forall inv1: (\forall x:A. (add x (inv x)) = one).  
-  \forall inv2: (\forall x:A. (mult x (inv x)) = zero). 
-  \forall hint1731:(\forall x,y:A. add (inv (add x y)) y = add y (inv x)).
-  \forall hint609:(\forall x,y:A. inv x = add (inv (add y x)) (inv x)).
-  \forall x,y:A.
-    (inv (mult x y)) = (add (inv x) (inv y)).
-intros.auto paramodulation.
-qed.
-(* 41 *)
-
-theorem bool5:
-  \forall A:Set.
-  \forall one:A.
-  \forall zero:A.
-  \forall add: A \to A \to A.
-  \forall mult: A \to A \to A.
-  \forall inv: A \to A.
-  \forall c1:(\forall x,y:A.(add x y) = (add y x)). 
-  \forall c2:(\forall x,y:A.(mult x y) = (mult y x)). 
-  \forall d1: (\forall x,y,z:A.
-              (add x (mult y z)) = (mult (add x y) (add x z))).
-  \forall d2: (\forall x,y,z:A.
-              (mult x (add y z)) = (add (mult x y) (mult x z))).  
-  \forall i1: (\forall x:A. (add x zero) = x).
-  \forall i2: (\forall x:A. (mult x one) = x).   
-  \forall inv1: (\forall x:A. (add x (inv x)) = one).  
-  \forall inv2: (\forall x:A. (mult x (inv x)) = zero). 
-  \forall x,y:A.
-    (inv (mult x y)) = (add (inv x) (inv y)).
-intros.auto paramodulation.
-qed.
diff --git a/matita/tests/bool.ma b/matita/tests/bool.ma
new file mode 100644 (file)
index 0000000..1b09520
--- /dev/null
@@ -0,0 +1,645 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||M||                                                             *)
+(*      ||A||       A project by Andrea Asperti                           *)
+(*      ||T||                                                             *)
+(*      ||I||       Developers:                                           *)
+(*      ||T||         The HELM team.                                      *)
+(*      ||A||         http://helm.cs.unibo.it                             *)
+(*      \   /                                                             *)
+(*       \ /        This file is distributed under the terms of the       *)
+(*        v         GNU General Public License Version 2                  *)
+(*                                                                        *)
+(**************************************************************************)
+
+set "baseuri" "cic:/matita/SK/".
+
+include "legacy/coq.ma".
+
+alias id "nat" = "cic:/Coq/Init/Datatypes/nat.ind#xpointer(1/1)".
+alias id "eq" = "cic:/Coq/Init/Logic/eq.ind#xpointer(1/1)".
+alias id "eq_ind" = "cic:/Coq/Init/Logic/eq_ind.con".
+alias id "eq_ind_r" = "cic:/Coq/Init/Logic/eq_ind_r.con".
+alias id "sym_eq" = "cic:/Coq/Init/Logic/sym_eq.con".
+
+theorem SKK:
+  \forall A:Set.
+  \forall app: A \to A \to A.
+  \forall K:A. 
+  \forall S:A.
+  \forall H1: (\forall x,y:A.(app (app K x) y) = x).
+  \forall H2: (\forall x,y,z:A.
+    (app (app (app S x) y) z) = (app (app x z) (app y z))).
+  \forall x:A.
+    (app (app (app S K) K) x) = x.
+intros.auto paramodulation.
+qed.
+
+theorem bool1:
+  \forall A:Set.
+  \forall one:A.
+  \forall zero:A.
+  \forall add: A \to A \to A.
+  \forall mult: A \to A \to A.
+  \forall inv: A \to A.
+  \forall c1:(\forall x,y:A.(add x y) = (add y x)). 
+  \forall c2:(\forall x,y:A.(mult x y) = (mult y x)). 
+  \forall d1: (\forall x,y,z:A.
+              (add x (mult y z)) = (mult (add x y) (add x z))).
+  \forall d2: (\forall x,y,z:A.
+              (mult x (add y z)) = (add (mult x y) (mult x z))).  
+  \forall i1: (\forall x:A. (add x zero) = x).
+  \forall i2: (\forall x:A. (mult x one) = x).   
+  \forall inv1: (\forall x:A. (add x (inv x)) = one).  
+  \forall inv2: (\forall x:A. (mult x (inv x)) = zero). 
+  (inv zero) = one.
+intros.auto paramodulation.
+qed.
+  
+theorem bool2:
+  \forall A:Set.
+  \forall one:A.
+  \forall zero:A.
+  \forall add: A \to A \to A.
+  \forall mult: A \to A \to A.
+  \forall inv: A \to A.
+  \forall c1:(\forall x,y:A.(add x y) = (add y x)). 
+  \forall c2:(\forall x,y:A.(mult x y) = (mult y x)). 
+  \forall d1: (\forall x,y,z:A.
+              (add x (mult y z)) = (mult (add x y) (add x z))).
+  \forall d2: (\forall x,y,z:A.
+              (mult x (add y z)) = (add (mult x y) (mult x z))).  
+  \forall i1: (\forall x:A. (add x zero) = x).
+  \forall i2: (\forall x:A. (mult x one) = x).   
+  \forall inv1: (\forall x:A. (add x (inv x)) = one).  
+  \forall inv2: (\forall x:A. (mult x (inv x)) = zero).
+  \forall x:A. (mult x zero) = zero.
+intros.auto paramodulation.
+qed.
+
+theorem bool3:
+  \forall A:Set.
+  \forall one:A.
+  \forall zero:A.
+  \forall add: A \to A \to A.
+  \forall mult: A \to A \to A.
+  \forall inv: A \to A.
+  \forall c1:(\forall x,y:A.(add x y) = (add y x)). 
+  \forall c2:(\forall x,y:A.(mult x y) = (mult y x)). 
+  \forall d1: (\forall x,y,z:A.
+              (add x (mult y z)) = (mult (add x y) (add x z))).
+  \forall d2: (\forall x,y,z:A.
+              (mult x (add y z)) = (add (mult x y) (mult x z))).  
+  \forall i1: (\forall x:A. (add x zero) = x).
+  \forall i2: (\forall x:A. (mult x one) = x).   
+  \forall inv1: (\forall x:A. (add x (inv x)) = one).  
+  \forall inv2: (\forall x:A. (mult x (inv x)) = zero).
+  \forall x:A. (inv (inv x)) = x.
+intros.auto paramodulation.
+qed.
+
+theorem bool266:
+  \forall A:Set.
+  \forall one:A.
+  \forall zero:A.
+  \forall add: A \to A \to A.
+  \forall mult: A \to A \to A.
+  \forall inv: A \to A.
+  \forall c1:(\forall x,y:A.(add x y) = (add y x)). 
+  \forall c2:(\forall x,y:A.(mult x y) = (mult y x)). 
+  \forall d1: (\forall x,y,z:A.
+              (add x (mult y z)) = (mult (add x y) (add x z))).
+  \forall d2: (\forall x,y,z:A.
+              (mult x (add y z)) = (add (mult x y) (mult x z))).  
+  \forall i1: (\forall x:A. (add x zero) = x).
+  \forall i2: (\forall x:A. (mult x one) = x).   
+  \forall inv1: (\forall x:A. (add x (inv x)) = one).  
+  \forall inv2: (\forall x:A. (mult x (inv x)) = zero).
+  \forall x,y:A. (mult x (add (inv x) y)) = (mult x y).
+intros.auto paramodulation.
+qed.
+
+theorem bool507:
+  \forall A:Set.
+  \forall one:A.
+  \forall zero:A.
+  \forall add: A \to A \to A.
+  \forall mult: A \to A \to A.
+  \forall inv: A \to A.
+  \forall c1:(\forall x,y:A.(add x y) = (add y x)). 
+  \forall c2:(\forall x,y:A.(mult x y) = (mult y x)). 
+  \forall d1: (\forall x,y,z:A.
+              (add x (mult y z)) = (mult (add x y) (add x z))).
+  \forall d2: (\forall x,y,z:A.
+              (mult x (add y z)) = (add (mult x y) (mult x z))).  
+  \forall i1: (\forall x:A. (add x zero) = x).
+  \forall i2: (\forall x:A. (mult x one) = x).   
+  \forall inv1: (\forall x:A. (add x (inv x)) = one).  
+  \forall inv2: (\forall x:A. (mult x (inv x)) = zero).
+  \forall x,y:A. zero = (mult x (mult (inv x) y)).
+intros.auto paramodulation.
+qed.
+
+theorem bool515:
+  \forall A:Set.
+  \forall one:A.
+  \forall zero:A.
+  \forall add: A \to A \to A.
+  \forall mult: A \to A \to A.
+  \forall inv: A \to A.
+  \forall c1:(\forall x,y:A.(add x y) = (add y x)). 
+  \forall c2:(\forall x,y:A.(mult x y) = (mult y x)). 
+  \forall d1: (\forall x,y,z:A.
+              (add x (mult y z)) = (mult (add x y) (add x z))).
+  \forall d2: (\forall x,y,z:A.
+              (mult x (add y z)) = (add (mult x y) (mult x z))).  
+  \forall i1: (\forall x:A. (add x zero) = x).
+  \forall i2: (\forall x:A. (mult x one) = x).   
+  \forall inv1: (\forall x:A. (add x (inv x)) = one).  
+  \forall inv2: (\forall x:A. (mult x (inv x)) = zero).
+  \forall x,y:A. zero = mult (inv x) (mult x y).
+intros.auto paramodulation.
+qed.
+
+theorem bool304:
+  \forall A:Set.
+  \forall one:A.
+  \forall zero:A.
+  \forall add: A \to A \to A.
+  \forall mult: A \to A \to A.
+  \forall inv: A \to A.
+  \forall c1:(\forall x,y:A.(add x y) = (add y x)). 
+  \forall c2:(\forall x,y:A.(mult x y) = (mult y x)). 
+  \forall d1: (\forall x,y,z:A.
+              (add x (mult y z)) = (mult (add x y) (add x z))).
+  \forall d2: (\forall x,y,z:A.
+              (mult x (add y z)) = (add (mult x y) (mult x z))).  
+  \forall i1: (\forall x:A. (add x zero) = x).
+  \forall i2: (\forall x:A. (mult x one) = x).   
+  \forall inv1: (\forall x:A. (add x (inv x)) = one).  
+  \forall inv2: (\forall x:A. (mult x (inv x)) = zero).
+  \forall x,y:A. x = (mult (add y x) x).
+intros.auto paramodulation.
+qed.
+
+theorem bool531:
+  \forall A:Set.
+  \forall one:A.
+  \forall zero:A.
+  \forall add: A \to A \to A.
+  \forall mult: A \to A \to A.
+  \forall inv: A \to A.
+  \forall c1:(\forall x,y:A.(add x y) = (add y x)). 
+  \forall c2:(\forall x,y:A.(mult x y) = (mult y x)). 
+  \forall d1: (\forall x,y,z:A.
+              (add x (mult y z)) = (mult (add x y) (add x z))).
+  \forall d2: (\forall x,y,z:A.
+              (mult x (add y z)) = (add (mult x y) (mult x z))).  
+  \forall i1: (\forall x:A. (add x zero) = x).
+  \forall i2: (\forall x:A. (mult x one) = x).   
+  \forall inv1: (\forall x:A. (add x (inv x)) = one).  
+  \forall inv2: (\forall x:A. (mult x (inv x)) = zero).
+  \forall x,y:A. zero = (mult (inv (add x y)) y).
+intros.auto paramodulation.
+qed.
+
+theorem bool253:
+  \forall A:Set.
+  \forall one:A.
+  \forall zero:A.
+  \forall add: A \to A \to A.
+  \forall mult: A \to A \to A.
+  \forall inv: A \to A.
+  \forall c1:(\forall x,y:A.(add x y) = (add y x)). 
+  \forall c2:(\forall x,y:A.(mult x y) = (mult y x)). 
+  \forall d1: (\forall x,y,z:A.
+              (add x (mult y z)) = (mult (add x y) (add x z))).
+  \forall d2: (\forall x,y,z:A.
+              (mult x (add y z)) = (add (mult x y) (mult x z))).  
+  \forall i1: (\forall x:A. (add x zero) = x).
+  \forall i2: (\forall x:A. (mult x one) = x).   
+  \forall inv1: (\forall x:A. (add x (inv x)) = one).  
+  \forall inv2: (\forall x:A. (mult x (inv x)) = zero).
+  \forall x,y:A. (add (inv x) (mult y x)) = (add (inv x) y).
+intros.auto paramodulation.
+qed.
+
+theorem bool557:
+  \forall A:Set.
+  \forall one:A.
+  \forall zero:A.
+  \forall add: A \to A \to A.
+  \forall mult: A \to A \to A.
+  \forall inv: A \to A.
+  \forall c1:(\forall x,y:A.(add x y) = (add y x)). 
+  \forall c2:(\forall x,y:A.(mult x y) = (mult y x)). 
+  \forall d1: (\forall x,y,z:A.
+              (add x (mult y z)) = (mult (add x y) (add x z))).
+  \forall d2: (\forall x,y,z:A.
+              (mult x (add y z)) = (add (mult x y) (mult x z))).  
+  \forall i1: (\forall x:A. (add x zero) = x).
+  \forall i2: (\forall x:A. (mult x one) = x).   
+  \forall inv1: (\forall x:A. (add x (inv x)) = one).  
+  \forall inv2: (\forall x:A. (mult x (inv x)) = zero). 
+  (*
+  \forall hint1: (\forall x,y:A. (add (inv x) (mult y x)) = (add (inv x) y)).
+  \forall hint2: \forall x,y:A.zero = (mult (inv x) (mult x y)). 
+  \forall hint2: (\forall x,y:A. zero = (mult (inv (add x y)) y)).
+  *)
+  \forall x,y:A. 
+    inv x =  (add (inv x) (inv (add y x))).
+intros.auto paramodulation.
+qed.
+
+theorem bool609:
+  \forall A:Set.
+  \forall one:A.
+  \forall zero:A.
+  \forall add: A \to A \to A.
+  \forall mult: A \to A \to A.
+  \forall inv: A \to A.
+  \forall c1:(\forall x,y:A.(add x y) = (add y x)). 
+  \forall c2:(\forall x,y:A.(mult x y) = (mult y x)). 
+  \forall d1: (\forall x,y,z:A.
+              (add x (mult y z)) = (mult (add x y) (add x z))).
+  \forall d2: (\forall x,y,z:A.
+              (mult x (add y z)) = (add (mult x y) (mult x z))).  
+  \forall i1: (\forall x:A. (add x zero) = x).
+  \forall i2: (\forall x:A. (mult x one) = x).   
+  \forall inv1: (\forall x:A. (add x (inv x)) = one).  
+  \forall inv2: (\forall x:A. (mult x (inv x)) = zero). 
+  (*
+  \forall hint1: (\forall x,y:A. (add (inv x) (mult y x)) = (add (inv x) y)).
+  \forall hint2: \forall x,y:A.zero = (mult (inv x) (mult x y)). 
+  \forall hint2: (\forall x,y:A. zero = (mult (inv (add x y)) y)).
+  *)
+  \forall x,y:A. 
+    inv x =  (add (inv (add y x)) (inv x)).
+intros.auto paramodulation.
+qed.
+(*
+theorem bool260:
+  \forall A:Set.
+  \forall one:A.
+  \forall zero:A.
+  \forall add: A \to A \to A.
+  \forall mult: A \to A \to A.
+  \forall inv: A \to A.
+  \forall c1:(\forall x,y:A.(add x y) = (add y x)). 
+  \forall c2:(\forall x,y:A.(mult x y) = (mult y x)). 
+  \forall d1: (\forall x,y,z:A.
+              (add x (mult y z)) = (mult (add x y) (add x z))).
+  \forall d2: (\forall x,y,z:A.
+              (mult x (add y z)) = (add (mult x y) (mult x z))).  
+  \forall i1: (\forall x:A. (add x zero) = x).
+  \forall i2: (\forall x:A. (mult x one) = x).   
+  \forall inv1: (\forall x:A. (add x (inv x)) = one).  
+  \forall inv2: (\forall x:A. (mult x (inv x)) = zero). 
+  \forall x,y,z:A. 
+    add x (mult x y) = mult x (add x y).
+intros.auto paramodulation.
+qed.
+
+theorem bool276:
+  \forall A:Set.
+  \forall one:A.
+  \forall zero:A.
+  \forall add: A \to A \to A.
+  \forall mult: A \to A \to A.
+  \forall inv: A \to A.
+  \forall c1:(\forall x,y:A.(add x y) = (add y x)). 
+  \forall c2:(\forall x,y:A.(mult x y) = (mult y x)). 
+  \forall d1: (\forall x,y,z:A.
+              (add x (mult y z)) = (mult (add x y) (add x z))).
+  \forall d2: (\forall x,y,z:A.
+              (mult x (add y z)) = (add (mult x y) (mult x z))).  
+  \forall i1: (\forall x:A. (add x zero) = x).
+  \forall i2: (\forall x:A. (mult x one) = x).   
+  \forall inv1: (\forall x:A. (add x (inv x)) = one).  
+  \forall inv2: (\forall x:A. (mult x (inv x)) = zero). 
+  \forall x,y,z,u:A. 
+    (mult (add x y) (add z (add x u))) = (add (mult (add x y) z) (add x (mult y u))).
+intros.auto paramodulation.
+qed. 
+
+theorem bool250:
+  \forall A:Set.
+  \forall one:A.
+  \forall zero:A.
+  \forall add: A \to A \to A.
+  \forall mult: A \to A \to A.
+  \forall inv: A \to A.
+  \forall c1:(\forall x,y:A.(add x y) = (add y x)). 
+  \forall c2:(\forall x,y:A.(mult x y) = (mult y x)). 
+  \forall d1: (\forall x,y,z:A.
+              (add x (mult y z)) = (mult (add x y) (add x z))).
+  \forall d2: (\forall x,y,z:A.
+              (mult x (add y z)) = (add (mult x y) (mult x z))).  
+  \forall i1: (\forall x:A. (add x zero) = x).
+  \forall i2: (\forall x:A. (mult x one) = x).   
+  \forall inv1: (\forall x:A. (add x (inv x)) = one).  
+  \forall inv2: (\forall x:A. (mult x (inv x)) = zero). 
+  \forall x,y,z:A. 
+    add x (mult y z) = mult (add y x) (add x z).
+intros.auto paramodulation.
+qed. 
+
+theorem bool756minimal:
+  \forall A:Set.
+  \forall add: A \to A \to A.
+  \forall mult: A \to A \to A.
+  \forall c1:(\forall x,y:A.(add x y) = (add y x)). 
+  \forall hint1: (\forall x,y,z,u:A. 
+    add y (add x (mult x u)) = (add (mult (add x y) z) (add x (mult y u)))).
+  \forall hint2: (\forall x,y:A. x = (mult (add y x) x)).
+  \forall x,y,z:A. 
+    add x (add y (mult y z)) = add x (add y (mult x z)).
+intros;
+auto paramodulation.
+qed.
+
+theorem bool756simplified:
+  \forall A:Set.
+  \forall add: A \to A \to A.
+  \forall mult: A \to A \to A.
+  \forall c1:(\forall x,y:A.(add x y) = (add y x)). 
+  \forall c2:(\forall x,y:A.(mult x y) = (mult y x)). 
+  \forall hint1: (\forall x,y,z,u:A. 
+    (mult (add x y) (add z (add x u))) = (add (mult (add x y) z) (add x (mult y u)))).
+  \forall hint2: (\forall x,y:A. x = (mult (add y x) x)).
+  \forall hint3: (\forall x,y,z:A. 
+    add x (mult y z) = mult (add y x) (add x z)).
+  \forall hint4: (\forall x,y:A. 
+    add x (mult x y) = mult x (add x y)).
+  \forall x,y,z:A. 
+    add x (add y (mult y z)) = add x (add y (mult x z)).
+intros;
+auto paramodulation.
+qed.
+(* 46 sec. *)
+
+theorem bool756:
+  \forall A:Set.
+  \forall one:A.
+  \forall zero:A.
+  \forall add: A \to A \to A.
+  \forall mult: A \to A \to A.
+  \forall inv: A \to A.
+  \forall c1:(\forall x,y:A.(add x y) = (add y x)). 
+  \forall c2:(\forall x,y:A.(mult x y) = (mult y x)). 
+  \forall d1: (\forall x,y,z:A.
+              (add x (mult y z)) = (mult (add x y) (add x z))).
+  \forall d2: (\forall x,y,z:A.
+              (mult x (add y z)) = (add (mult x y) (mult x z))).  
+  \forall i1: (\forall x:A. (add x zero) = x).
+  \forall i2: (\forall x:A. (mult x one) = x).   
+  \forall inv1: (\forall x:A. (add x (inv x)) = one).  
+  \forall inv2: (\forall x:A. (mult x (inv x)) = zero). 
+  \forall hint1: (\forall x,y,z,u:A. 
+    (mult (add x y) (add z (add x u))) = (add (mult (add x y) z) (add x (mult y u)))).
+  \forall hint2: (\forall x,y:A. x = (mult (add y x) x)).
+  \forall hint3: (\forall x,y,z:A. 
+    add x (mult y z) = mult (add y x) (add x z)).
+  \forall hint4: (\forall x,y:A. 
+    add x (mult x y) = mult x (add x y)).
+  \forall x,y,z:A. 
+    add x y = add x (add y (mult x z)).
+intros;
+cut (mult (add y x) (add x (add y z)) = add x (add y (mult x z)));
+[auto paramodulation
+|auto paramodulation]
+qed.
+(*  186 sec *)
+*)
+theorem bool756full:
+  \forall A:Set.
+  \forall one:A.
+  \forall zero:A.
+  \forall add: A \to A \to A.
+  \forall mult: A \to A \to A.
+  \forall inv: A \to A.
+  \forall c1:(\forall x,y:A.(add x y) = (add y x)). 
+  \forall c2:(\forall x,y:A.(mult x y) = (mult y x)). 
+  \forall d1: (\forall x,y,z:A.
+              (add x (mult y z)) = (mult (add x y) (add x z))).
+  \forall d2: (\forall x,y,z:A.
+              (mult x (add y z)) = (add (mult x y) (mult x z))).  
+  \forall i1: (\forall x:A. (add x zero) = x).
+  \forall i2: (\forall x:A. (mult x one) = x).   
+  \forall inv1: (\forall x:A. (add x (inv x)) = one).  
+  \forall inv2: (\forall x:A. (mult x (inv x)) = zero). 
+  \forall x,y,z:A. 
+    add x y = add x (add y (mult x z)).
+intros;auto paramodulation.
+qed.
+(* war=5; active 225, maxmeta 172568 *)
+(* war=4; active 249, maxmeta 223220 *)
+(*
+theorem bool1164:
+  \forall A:Set.
+  \forall one:A.
+  \forall zero:A.
+  \forall add: A \to A \to A.
+  \forall mult: A \to A \to A.
+  \forall inv: A \to A.
+  \forall c1:(\forall x,y:A.(add x y) = (add y x)). 
+  \forall c2:(\forall x,y:A.(mult x y) = (mult y x)). 
+  \forall d1: (\forall x,y,z:A.
+              (add x (mult y z)) = (mult (add x y) (add x z))).
+  \forall d2: (\forall x,y,z:A.
+              (mult x (add y z)) = (add (mult x y) (mult x z))).  
+  \forall i1: (\forall x:A. (add x zero) = x).
+  \forall i2: (\forall x:A. (mult x one) = x).   
+  \forall inv1: (\forall x:A. (add x (inv x)) = one).  
+  \forall inv2: (\forall x:A. (mult x (inv x)) = zero). 
+  \forall x,y,z:A.
+    (add x y) = (add (add x (mult y z)) y).
+intros.auto paramodulation.
+qed.
+
+theorem bool1230:
+  \forall A:Set.
+  \forall one:A.
+  \forall zero:A.
+  \forall add: A \to A \to A.
+  \forall mult: A \to A \to A.
+  \forall inv: A \to A.
+  \forall c1:(\forall x,y:A.(add x y) = (add y x)). 
+  \forall c2:(\forall x,y:A.(mult x y) = (mult y x)). 
+  \forall d1: (\forall x,y,z:A.
+              (add x (mult y z)) = (mult (add x y) (add x z))).
+  \forall d2: (\forall x,y,z:A.
+              (mult x (add y z)) = (add (mult x y) (mult x z))).  
+  \forall i1: (\forall x:A. (add x zero) = x).
+  \forall i2: (\forall x:A. (mult x one) = x).   
+  \forall inv1: (\forall x:A. (add x (inv x)) = one).  
+  \forall inv2: (\forall x:A. (mult x (inv x)) = zero). 
+  \forall x,y,z:A.
+  \forall c1z: (\forall x:A.(add x z) = (add z x)). 
+    add (add x y) z = add (add x y) (add z y).
+intros.auto paramodulation.
+qed.
+
+theorem bool1230:
+  \forall A:Set.
+  \forall one:A.
+  \forall zero:A.
+  \forall add: A \to A \to A.
+  \forall mult: A \to A \to A.
+  \forall inv: A \to A.
+  \forall c1:(\forall x,y:A.(add x y) = (add y x)). 
+  \forall c2:(\forall x,y:A.(mult x y) = (mult y x)). 
+  \forall d1: (\forall x,y,z:A.
+              (add x (mult y z)) = (mult (add x y) (add x z))).
+  \forall d2: (\forall x,y,z:A.
+              (mult x (add y z)) = (add (mult x y) (mult x z))).  
+  \forall i1: (\forall x:A. (add x zero) = x).
+  \forall i2: (\forall x:A. (mult x one) = x).   
+  \forall inv1: (\forall x:A. (add x (inv x)) = one).  
+  \forall inv2: (\forall x:A. (mult x (inv x)) = zero). 
+  \forall x,y,z:A.
+    add (add x y) z = add (add x y) (add z y).
+intros.auto paramodulation.
+qed.
+
+theorem bool1372:
+  \forall A:Set.
+  \forall one:A.
+  \forall zero:A.
+  \forall add: A \to A \to A.
+  \forall mult: A \to A \to A.
+  \forall inv: A \to A.
+  \forall c1:(\forall x,y:A.(add x y) = (add y x)). 
+  \forall c2:(\forall x,y:A.(mult x y) = (mult y x)). 
+  \forall d1: (\forall x,y,z:A.
+              (add x (mult y z)) = (mult (add x y) (add x z))).
+  \forall d2: (\forall x,y,z:A.
+              (mult x (add y z)) = (add (mult x y) (mult x z))).  
+  \forall i1: (\forall x:A. (add x zero) = x).
+  \forall i2: (\forall x:A. (mult x one) = x).   
+  \forall inv1: (\forall x:A. (add x (inv x)) = one).  
+  \forall inv2: (\forall x:A. (mult x (inv x)) = zero). 
+  \forall x,y,z:A.
+    add x (add y z) = add (add x z) y.
+intros.auto paramodulation.
+qed.*)
+
+theorem bool381:
+  \forall A:Set.
+  \forall one:A.
+  \forall zero:A.
+  \forall add: A \to A \to A.
+  \forall mult: A \to A \to A.
+  \forall inv: A \to A.
+  \forall c1:(\forall x,y:A.(add x y) = (add y x)). 
+  \forall c2:(\forall x,y:A.(mult x y) = (mult y x)). 
+  \forall d1: (\forall x,y,z:A.
+              (add x (mult y z)) = (mult (add x y) (add x z))).
+  \forall d2: (\forall x,y,z:A.
+              (mult x (add y z)) = (add (mult x y) (mult x z))).  
+  \forall i1: (\forall x:A. (add x zero) = x).
+  \forall i2: (\forall x:A. (mult x one) = x).   
+  \forall inv1: (\forall x:A. (add x (inv x)) = one).  
+  \forall inv2: (\forall x:A. (mult x (inv x)) = zero). 
+  \forall x,y:A.
+      add (inv x) y = add (mult x y) (inv x).
+intros.auto paramodulation.
+qed.
+
+theorem bool5hint1:
+  \forall A:Set.
+  \forall one:A.
+  \forall zero:A.
+  \forall add: A \to A \to A.
+  \forall mult: A \to A \to A.
+  \forall inv: A \to A.
+  \forall c1:(\forall x,y:A.(add x y) = (add y x)). 
+  \forall c2:(\forall x,y:A.(mult x y) = (mult y x)). 
+  \forall d1: (\forall x,y,z:A.
+              (add x (mult y z)) = (mult (add x y) (add x z))).
+  \forall d2: (\forall x,y,z:A.
+              (mult x (add y z)) = (add (mult x y) (mult x z))).  
+  \forall i1: (\forall x:A. (add x zero) = x).
+  \forall i2: (\forall x:A. (mult x one) = x).   
+  \forall inv1: (\forall x:A. (add x (inv x)) = one).  
+  \forall inv2: (\forall x:A. (mult x (inv x)) = zero). 
+  \forall hint1731:(\forall x,y:A. add (inv (add x y)) y = add y (inv x)).
+  \forall hint1735:(\forall x,y:A. add (inv (add x y)) x = add x (inv y)).
+  \forall hint623:(\forall x,y:A. inv (mult x y) = add (inv x) (inv (mult x y))).
+  \forall x,y:A.
+    (inv (mult x y)) = (add (inv x) (inv y)).
+intros.auto paramodulation.
+qed.
+(* 90 *)
+
+theorem bool5hint2:
+  \forall A:Set.
+  \forall one:A.
+  \forall zero:A.
+  \forall add: A \to A \to A.
+  \forall mult: A \to A \to A.
+  \forall inv: A \to A.
+  \forall c1:(\forall x,y:A.(add x y) = (add y x)). 
+  \forall c2:(\forall x,y:A.(mult x y) = (mult y x)). 
+  \forall d1: (\forall x,y,z:A.
+              (add x (mult y z)) = (mult (add x y) (add x z))).
+  \forall d2: (\forall x,y,z:A.
+              (mult x (add y z)) = (add (mult x y) (mult x z))).  
+  \forall i1: (\forall x:A. (add x zero) = x).
+  \forall i2: (\forall x:A. (mult x one) = x).   
+  \forall inv1: (\forall x:A. (add x (inv x)) = one).  
+  \forall inv2: (\forall x:A. (mult x (inv x)) = zero). 
+  \forall hint1731:(\forall x,y:A. add (inv (add x y)) y = add y (inv x)).
+  \forall hint623:(\forall x,y:A. inv (mult x y) = add (inv x) (inv (mult x y))).
+  \forall x,y:A.
+    (inv (mult x y)) = (add (inv x) (inv y)).
+intros.auto paramodulation.
+qed.
+(* 41 *)
+
+theorem bool5hint3:
+  \forall A:Set.
+  \forall one:A.
+  \forall zero:A.
+  \forall add: A \to A \to A.
+  \forall mult: A \to A \to A.
+  \forall inv: A \to A.
+  \forall c1:(\forall x,y:A.(add x y) = (add y x)). 
+  \forall c2:(\forall x,y:A.(mult x y) = (mult y x)). 
+  \forall d1: (\forall x,y,z:A.
+              (add x (mult y z)) = (mult (add x y) (add x z))).
+  \forall d2: (\forall x,y,z:A.
+              (mult x (add y z)) = (add (mult x y) (mult x z))).  
+  \forall i1: (\forall x:A. (add x zero) = x).
+  \forall i2: (\forall x:A. (mult x one) = x).   
+  \forall inv1: (\forall x:A. (add x (inv x)) = one).  
+  \forall inv2: (\forall x:A. (mult x (inv x)) = zero). 
+  \forall hint1731:(\forall x,y:A. add (inv (add x y)) y = add y (inv x)).
+  \forall hint609:(\forall x,y:A. inv x = add (inv (add y x)) (inv x)).
+  \forall x,y:A.
+    (inv (mult x y)) = (add (inv x) (inv y)).
+intros.auto paramodulation.
+qed.
+(* 41 *)
+
+theorem bool5:
+  \forall A:Set.
+  \forall one:A.
+  \forall zero:A.
+  \forall add: A \to A \to A.
+  \forall mult: A \to A \to A.
+  \forall inv: A \to A.
+  \forall c1:(\forall x,y:A.(add x y) = (add y x)). 
+  \forall c2:(\forall x,y:A.(mult x y) = (mult y x)). 
+  \forall d1: (\forall x,y,z:A.
+              (add x (mult y z)) = (mult (add x y) (add x z))).
+  \forall d2: (\forall x,y,z:A.
+              (mult x (add y z)) = (add (mult x y) (mult x z))).  
+  \forall i1: (\forall x:A. (add x zero) = x).
+  \forall i2: (\forall x:A. (mult x one) = x).   
+  \forall inv1: (\forall x:A. (add x (inv x)) = one).  
+  \forall inv2: (\forall x:A. (mult x (inv x)) = zero). 
+  \forall x,y:A.
+    (inv (mult x y)) = (add (inv x) (inv y)).
+intros.auto paramodulation.
+qed.