]> matita.cs.unibo.it Git - helm.git/commitdiff
more lemmas, til 3.26
authorEnrico Tassi <enrico.tassi@inria.fr>
Mon, 14 Jan 2008 17:02:46 +0000 (17:02 +0000)
committerEnrico Tassi <enrico.tassi@inria.fr>
Mon, 14 Jan 2008 17:02:46 +0000 (17:02 +0000)
helm/software/matita/dama/TODO [new file with mode: 0644]
helm/software/matita/dama/infsup.ma
helm/software/matita/dama/lattice.ma

diff --git a/helm/software/matita/dama/TODO b/helm/software/matita/dama/TODO
new file mode 100644 (file)
index 0000000..6e2ccdd
--- /dev/null
@@ -0,0 +1,2 @@
+changing file resets the display-notation ref, but not the GUI tick
+mettere una maction in tutti i body (ma forse non basta)
index ef436f8892ae8a3c6cde9cc2067777633eb6b027..05b497cc51c7ac924ae3a5c0f7b61f1b46901608 100644 (file)
@@ -32,4 +32,42 @@ elim (Sx Hxn) (_ Hx); elim (Sy Hxn) (_ Hy);
 apply (tends_uniq ?? xn ?? Hx Hy);
 qed.
 
-(* 3.21 *)
+definition shift : ∀R.∀ml:mlattice R.∀xn:sequence ml.nat → sequence ml ≝
+ λR.λml:mlattice R.λxn:sequence ml.λm:nat.λn.xn (n+m).
+definition ank ≝
+  λR.λml:mlattice R.λxn:sequence ml.λk:nat.
+    let rec ank_aux (i : nat) ≝
+      match i with 
+      [ O ⇒ (shift ?? xn k) O
+      | S n1 ⇒ (shift ?? xn k) (S n1) ∧ ank_aux n1]
+    in ank_aux.
+    
+definition bnk ≝
+  λR.λml:mlattice R.λxn:sequence ml.λk:nat.
+    let rec bnk_aux (i : nat) ≝
+      match i with 
+      [ O ⇒ (shift ?? xn k) O
+      | S n1 ⇒ (shift ?? xn k) (S n1) ∨ bnk_aux n1]
+    in bnk_aux.
+    
+lemma ank_decreasing: 
+  ∀R.∀ml:mlattice R.∀xn:sequence ml.∀m.decreasing ? (ank ?? xn m).
+intros (R ml xn m); unfold; intro n; simplify; apply lem;
+qed.
+
+(* 3.26 *)
+lemma ankS:
+  ∀R.∀ml:mlattice R.∀xn:sequence ml.∀k,n:nat.
+    ((ank ?? xn k) (S n)) ≈ (xn k ∧ ank ?? xn (S k) n).
+intros (R ml xn k n); elim n; simplify; [apply meet_comm]  
+simplify in H; apply (Eq≈ ? (feq_ml ???? (H))); clear H;
+apply (Eq≈ ? (meet_assoc ????));    
+apply (Eq≈ ?? (eq_sym ??? (meet_assoc ????)));
+apply feq_mr; rewrite > sym_plus in ⊢ (? ? ? (? ? ? (? (? %))));
+simplify; rewrite > sym_plus in ⊢ (? ? ? (? ? ? (? (? %))));
+apply meet_comm;
+qed.    
+   
+   
+   
\ No newline at end of file
index 787ee3e8e267b18c129d28f0e4abd400c045ae96..66f14b942479fb2206d93151069085fc9e82ba65 100644 (file)
@@ -62,6 +62,12 @@ intros (l a b c H); unfold eq in H ⊢ %; unfold Not in H ⊢ %;
 intro H1; apply H; clear H; apply (strong_extm ???? H1);
 qed.
 
+lemma feq_mr: ∀ml:lattice.∀a,b,c:ml. a ≈ b → (a ∧ c) ≈ (b ∧ c).
+intros (l a b c H); 
+apply (Eq≈ ? (meet_comm ???)); apply (Eq≈ ?? (meet_comm ???));
+apply feq_ml; assumption;
+qed.
+
 lemma feq_jl: ∀ml:lattice.∀a,b,c:ml. a ≈ b → (c ∨ a) ≈ (c ∨ b).
 intros (l a b c H); unfold eq in H ⊢ %; unfold Not in H ⊢ %;
 intro H1; apply H; clear H; apply (strong_extj ???? H1);
@@ -83,5 +89,11 @@ apply (Eq≈ (b∨(b∧a)) ? (feq_jl ???? (meet_comm ???)));
 apply eq_sym; apply absorbjm;
 qed.
 
-
+lemma lem: ∀ml:lattice.∀a,b:ml.(a ∧ b) ≤ b.
+intros; unfold le; unfold excess_of_lattice; unfold excl; simplify;
+intro H; apply (ap_coreflexive ? (a∧b));
+apply (Ap≫ (a∧(b∧b)) (feq_ml ???? (meet_refl ? b)));
+apply (Ap≫ ? (meet_assoc ????)); assumption;
+qed.