]> matita.cs.unibo.it Git - helm.git/blobdiff - matita/matita/contribs/lambdadelta/basic_2/examples/ex_cpr_omega.ma
update in basic_2
[helm.git] / matita / matita / contribs / lambdadelta / basic_2 / examples / ex_cpr_omega.ma
index 84713bce6e4b23b6e2c7b9471bdd846ffd0d98a0..ad4d40bb95af9104f66d6fb7edee521fff82f974 100644 (file)
@@ -18,24 +18,26 @@ include "basic_2/reduction/cpr.ma".
 
 (* A reduction cycle in two steps: the term Omega ***************************)
 
-definition Delta: term â\89\9d +â\93\9bâ\8b\860.ⓐ#0.#0.
+definition Delta: term â\86\92 term â\89\9d Î»W. +â\93\9bW.ⓐ#0.#0.
 
-definition Omega1: term â\89\9d â\93\90Delta.Delta.
+definition Omega1: term â\86\92 term â\89\9d Î»W. â\93\90(Delta W).(Delta W).
 
-definition Omega2: term â\89\9d +â\93\93â\93\9dâ\8b\860.Delta.ⓐ#0.#0.
+definition Omega2: term â\86\92 term â\89\9d Î»W. +â\93\93â\93\9dW.(Delta W).ⓐ#0.#0.
 
 (* Basic properties *********************************************************)
 
-lemma Delta_lift: ∀d,e. ⇧[d, e] Delta ≡ Delta.
+lemma Delta_lift: ∀W1,W2,l,k. ⬆[l, k] W1 ≡ W2 →
+                  ⬆[l, k] (Delta W1) ≡ (Delta W2).
 /4 width=1 by lift_flat, lift_bind, lift_lref_lt/ qed.
 
 (* Main properties **********************************************************)
 
-theorem cpr_Omega_12: â¦\83â\8b\86, â\8b\86â¦\84 â\8a¢ Omega1 â\9e¡ Omega2.
+theorem cpr_Omega_12: â\88\80G,L,W. â¦\83G, Lâ¦\84 â\8a¢ Omega1 W â\9e¡ Omega2 W.
 /2 width=1 by cpr_beta/ qed.
 
-theorem cpr_Omega_21: ⦃⋆, ⋆⦄ ⊢ Omega2 ➡ Omega1.
-@(cpr_zeta … Omega1) /2 width=1 by lift_flat/
-@cpr_flat @(cpr_delta … Delta ? 0)
-[3,5,8,10: // |4,9: /2 width=1 by cpr_eps/ |*: skip ]
+theorem cpr_Omega_21: ∀G,L,W. ⦃G, L⦄ ⊢ Omega2 W ➡ Omega1 W.
+#G #L #W1 elim (lift_total W1 0 1) #W2 #HW12
+@(cpr_zeta … (Omega1 W2)) /3 width=1 by Delta_lift, lift_flat/
+@cpr_flat @(cpr_delta … (Delta W1) ? 0)
+[3,5,8,10: /2 width=2 by Delta_lift/ |4,9: /2 width=1 by cpr_eps/ |*: skip ]
 qed.