]> matita.cs.unibo.it Git - helm.git/blobdiff - matita/matita/contribs/lambdadelta/basic_2/static/sh.ma
- new component "s_transition" for the restored fqu and fquq
[helm.git] / matita / matita / contribs / lambdadelta / basic_2 / static / sh.ma
index 0d09320cc871665e968a39e15b0f3434c31d917a..d51bd19591b20a1700b8cff5cd86c5fc3e1ffd07 100644 (file)
@@ -19,7 +19,7 @@ include "ground_2/lib/arith.ma".
 (* sort hierarchy specification *)
 record sh: Type[0] ≝ {
    next   : nat → nat;     (* next sort in the hierarchy *)
-   next_lt: ∀k. k < next k (* strict monotonicity condition *)
+   next_lt: ∀s. s < next s (* strict monotonicity condition *)
 }.
 
 definition sh_N: sh ≝ mk_sh S ….
@@ -27,18 +27,18 @@ definition sh_N: sh ≝ mk_sh S ….
 
 (* Basic properties *********************************************************)
 
-lemma nexts_le: ∀h,k,l. k ≤ (next h)^l k.
-#h #k #l elim l -l // normalize #l #IHl
-lapply (next_lt h ((next h)^l k)) #H
-lapply (le_to_lt_to_lt … IHl H) -IHl -H /2 width=2 by lt_to_le/
+lemma nexts_le: ∀h,s,n. s ≤ (next h)^n s.
+#h #s #n elim n -n // normalize #n #IH
+lapply (next_lt h ((next h)^n s)) #H
+lapply (le_to_lt_to_lt … IH H) -IH -H /2 width=2 by lt_to_le/
 qed.
 
-lemma nexts_lt: ∀h,k,l. k < (next h)^(l+1) k.
-#h #k #l >iter_SO
-lapply (nexts_le h k l) #H
+lemma nexts_lt: ∀h,s,n. s < (next h)^(⫯n) s.
+#h #s #n normalize
+lapply (nexts_le h s n) #H
 @(le_to_lt_to_lt … H) //
 qed.
 
-axiom nexts_dec: ∀h,k1,k2. Decidable (∃l. (next h)^l k1 = k2).
+axiom nexts_dec: ∀h,s1,s2. Decidable (∃n. (next h)^n s1 = s2).
 
-axiom nexts_inj: ∀h,k,l1,l2. (next h)^l1 k = (next h)^l2 k → l1 = l2.
+axiom nexts_inj: ∀h,s,n1,n2. (next h)^n1 s = (next h)^n2 s → n1 = n2.