axiom Rtimes_x_R1 : ∀x.x * R1 = x.
axiom distr_Rtimes_Rplus_l : ∀x,y,z:R.x*(y+z) = x*y + x*z.
-pump 200.
+(*pump 200.*)
+pump 40.
lemma distr_Rtimes_Rplus_r : ∀x,y,z:R.(x+y)*z = x*z + y*z.
-intros; demodulate all. (*autobatch paramodulation;*)
+intros; autobatch;
qed.
(* commutative field *)
lemma trans_Rle : ∀x,y,z:R.x ≤ y → y ≤ z → x ≤ z.
intros;cases H
-[cases H1
+[cases H1; unfold; autobatch;
+|autobatch;]
+(*
[left;autobatch
|rewrite < H3;assumption]
-|rewrite > H2;assumption]
+|rewrite > H2;assumption]*)
qed.
-axiom Rlt_plus_l : ∀x,y,z:R.x < y → z + x < z + y.
-axiom Rlt_times_l : ∀x,y,z:R.x < y → R0 < z → z*x < z*y.
+axiom Rlt_plus_l : ∀z,x,y:R.x < y → z + x < z + y.
+axiom Rlt_times_l : ∀z,x,y:R.x < y → R0 < z → z*x < z*y.
(* FIXME: these should be lemmata *)
-axiom Rle_plus_l : ∀x,y,z:R.x ≤ y → z + x ≤ z + y.
-axiom Rle_times_l : ∀x,y,z:R.x ≤ y → R0 < z → z*x ≤ z*y.
+axiom Rle_plus_l : ∀z,x,y:R.x ≤ y → z + x ≤ z + y.
+axiom Rle_times_l : ∀z,x,y:R.x ≤ y → R0 < z → z*x ≤ z*y.
-lemma Rle_plus_r : ∀x,y,z:R.x ≤ y → x + z ≤ y + z.
-intros;
-rewrite > sym_Rplus;rewrite > sym_Rplus in ⊢ (??%);
-autobatch;
+lemma Rle_plus_r : ∀z,x,y:R.x ≤ y → x + z ≤ y + z.
+intros; autobatch.
qed.
-lemma Rle_times_r : ∀x,y,z:R.x ≤ y → R0 < z → x*z ≤ y*z.
+lemma Rle_times_r : ∀z,x,y:R.x ≤ y → R0 < z → x*z ≤ y*z.
intros;
-rewrite > sym_Rtimes;rewrite > sym_Rtimes in ⊢ (??%);
+(* rewrite > sym_Rtimes;rewrite > sym_Rtimes in ⊢ (??%); *)
autobatch;
qed.
qed. *)
lemma Rtimes_x_R0 : ∀x.x * R0 = R0.
-intro; demodulate all.
-(*
+(*intro; autobatch paramodulation.*)
+intros;
rewrite < Rplus_x_R0 in ⊢ (? ? % ?);
rewrite < (Rplus_Ropp (x*R0)) in ⊢ (? ? (? ? %) %);
rewrite < assoc_Rplus;
apply eq_f2;autobatch paramodulation;
-*)
+
qed.
lemma eq_Rtimes_Ropp_R1_Ropp : ∀x.x*(-R1) = -x.
-intro. demodulate all. (*
-auto paramodulation.
+intro. (*autobatch paramodulation.*)
+
rewrite < Rplus_x_R0 in ⊢ (? ? % ?);
rewrite < Rplus_x_R0 in ⊢ (? ? ? %);
rewrite < (Rplus_Ropp x) in ⊢ (? ? % ?);
apply eq_f2 [reflexivity]
rewrite < Rtimes_x_R1 in ⊢ (? ? (? % ?) ?);
rewrite < distr_Rtimes_Rplus_l;autobatch paramodulation;
-*)
+
qed.
lemma Ropp_inv : ∀x.x = Ropp (Ropp x).
lemma lt_Rinv : ∀x,y.R0 < x → x < y → Rinv y < Rinv x.
intros;
-lapply (Rlt_times_l ? ? (Rinv x * Rinv y) H1)
+lapply (Rlt_times_l (Rinv x * Rinv y) ? ? H1)
[ lapply (Rinv_Rtimes_l x);[2: intro; destruct H2; autobatch;]
lapply (Rinv_Rtimes_l y);[2: intro; destruct H2; autobatch;]
- cut ((x \sup -1/y*x<x \sup -1/y*y) = (y^-1 < x ^-1));[2:
- demodulate all;]
+ cut ((x \sup -1/y*x<x \sup -1/y*y) = (y^-1 < x ^-1));[2:autobatch
+(* end auto($Revision: 9716 $) proof: TIME=2.24 SIZE=100 DEPTH=100 *) ;]
rewrite < Hcut; assumption;
(*
rewrite > sym_Rtimes in Hletin;rewrite < assoc_Rtimes in Hletin;
qed.
lemma Rlt_plus_l_to_r : ∀a,b,c.a + b < c → a < c - b.
-intros; lapply (Rlt_plus_l ?? (-b) H); applyS Hletin;
+intros;
+autobatch by H, (Rlt_plus_l (-b) (a+b) c);
(*
rewrite < Rplus_x_R0;rewrite < (Rplus_Ropp b);
rewrite < assoc_Rplus;
rewrite < sym_Rplus;rewrite < sym_Rplus in ⊢ (??%);
-apply Rlt_plus_l;assumption;
+apply (Rlt_plus_l (-b) (a+b) c);assumption;
*)
qed.