]> matita.cs.unibo.it Git - helm.git/blobdiff - matita/matita/contribs/lambdadelta/basic_2/static/sh.ma
component: pr3
[helm.git] / matita / matita / contribs / lambdadelta / basic_2 / static / sh.ma
index 72df7717ec4eec724ca02d2d5502c8a5f7a16457..824e37e1fd942bd1a0d5fac70af321005a9234a3 100644 (file)
@@ -12,7 +12,7 @@
 (*                                                                        *)
 (**************************************************************************)
 
-include "ground_2/arith.ma".
+include "ground_2/lib/arith.ma".
 
 (* SORT HIERARCHY ***********************************************************)
 
@@ -22,15 +22,23 @@ record sh: Type[0] ≝ {
    next_lt: ∀k. k < next k (* strict monotonicity condition *)
 }.
 
+definition sh_N: sh ≝ mk_sh S ….
+// defined.
+
 (* 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/
+lemma nexts_le: ∀h,k,d. k ≤ (next h)^d k.
+#h #k #d elim d -d // normalize #d #IHd
+lapply (next_lt h ((next h)^d k)) #H
+lapply (le_to_lt_to_lt … IHd H) -IHd -H /2 width=2 by lt_to_le/
 qed.
 
-axiom nexts_dec: ∀h,k1,k2. Decidable (∃l. (next h)^l k1 = k2).
+lemma nexts_lt: ∀h,k,d. k < (next h)^(d+1) k.
+#h #k #d >iter_SO
+lapply (nexts_le h k d) #H
+@(le_to_lt_to_lt … H) //
+qed.
 
-axiom nexts_inj: ∀h,k,l1,l2. (next h)^l1 k = (next h)^l2 k → l1 = l2.
+axiom nexts_dec: ∀h,k1,k2. Decidable (∃d. (next h)^d k1 = k2).
 
+axiom nexts_inj: ∀h,k,d1,d2. (next h)^d1 k = (next h)^d2 k → d1 = d2.