(*** at *)
inductive fr2_nat: fr2_map → relation nat ≝
(*** at_nil *)
-| fr2_nat_nil (l):
- fr2_nat (◊) l l
+| fr2_nat_empty (l):
+ fr2_nat (𝐞) l l
(*** at_lt *)
| fr2_nat_lt (f) (d) (h) (l1) (l2):
- l1 < d → fr2_nat f l1 l2 → fr2_nat (❨d,h❩;f) l1 l2
+ l1 < d → fr2_nat f l1 l2 → fr2_nat (❨d,h❩◗f) l1 l2
(*** at_ge *)
| fr2_nat_ge (f) (d) (h) (l1) (l2):
- d ≤ l1 → fr2_nat f (l1 + h) l2 → fr2_nat (❨d,h❩;f) l1 l2
+ d ≤ l1 → fr2_nat f (l1 + h) l2 → fr2_nat (❨d,h❩◗f) l1 l2
.
interpretation
(* Basic inversions *********************************************************)
(*** at_inv_nil *)
-lemma fr2_nat_inv_nil (l1) (l2):
- @â\9dªl1, â\97\8aâ\9d« ≘ l2 → l1 = l2.
-#l1 #l2 @(insert_eq_1 … (◊))
+lemma fr2_nat_inv_empty (l1) (l2):
+ @â\9d¨l1, ð\9d\90\9eâ\9d© ≘ l2 → l1 = l2.
+#l1 #l2 @(insert_eq_1 … (𝐞))
#f * -f -l1 -l2
[ //
| #f #d #h #l1 #l2 #_ #_ #H destruct
qed-.
(*** at_inv_cons *)
-lemma fr2_nat_inv_cons (f) (d) (h) (l1) (l2):
- @â\9dªl1, â\9d¨d,hâ\9d©;fâ\9d« ≘ l2 →
- â\88¨â\88¨ â\88§â\88§ l1 < d & @â\9dªl1, fâ\9d« ≘ l2
- | â\88§â\88§ d â\89¤ l1 & @â\9dªl1+h, fâ\9d« ≘ l2.
-#g #d #h #l1 #l2 @(insert_eq_1 … (❨d, h❩;g))
+lemma fr2_nat_inv_lcons (f) (d) (h) (l1) (l2):
+ @â\9d¨l1, â\9d¨d,hâ\9d©â\97\97fâ\9d© ≘ l2 →
+ â\88¨â\88¨ â\88§â\88§ l1 < d & @â\9d¨l1, fâ\9d© ≘ l2
+ | â\88§â\88§ d â\89¤ l1 & @â\9d¨l1+h, fâ\9d© ≘ l2.
+#g #d #h #l1 #l2 @(insert_eq_1 … (❨d, h❩◗g))
#f * -f -l1 -l2
[ #l #H destruct
| #f1 #d1 #h1 #l1 #l2 #Hld1 #Hl12 #H destruct /3 width=1 by or_introl, conj/
qed-.
(*** at_inv_cons *)
-lemma fr2_nat_inv_cons_lt (f) (d) (h) (l1) (l2):
- @â\9dªl1, â\9d¨d,hâ\9d©;fâ\9d« â\89\98 l2 â\86\92 l1 < d â\86\92 @â\9dªl1, fâ\9d« ≘ l2.
+lemma fr2_nat_inv_lcons_lt (f) (d) (h) (l1) (l2):
+ @â\9d¨l1, â\9d¨d,hâ\9d©â\97\97fâ\9d© â\89\98 l2 â\86\92 l1 < d â\86\92 @â\9d¨l1, fâ\9d© ≘ l2.
#f #d #h #l1 #h2 #H
-elim (fr2_nat_inv_cons … H) -H * // #Hdl1 #_ #Hl1d
+elim (fr2_nat_inv_lcons … H) -H * // #Hdl1 #_ #Hl1d
elim (nlt_ge_false … Hl1d Hdl1)
qed-.
(*** at_inv_cons *)
-lemma fr2_nat_inv_cons_ge (f) (d) (h) (l1) (l2):
- @â\9dªl1, â\9d¨d,hâ\9d©;fâ\9d« â\89\98 l2 â\86\92 d â\89¤ l1 â\86\92 @â\9dªl1+h, fâ\9d« ≘ l2.
+lemma fr2_nat_inv_lcons_ge (f) (d) (h) (l1) (l2):
+ @â\9d¨l1, â\9d¨d,hâ\9d©â\97\97fâ\9d© â\89\98 l2 â\86\92 d â\89¤ l1 â\86\92 @â\9d¨l1+h, fâ\9d© ≘ l2.
#f #d #h #l1 #h2 #H
-elim (fr2_nat_inv_cons … H) -H * // #Hl1d #_ #Hdl1
+elim (fr2_nat_inv_lcons … H) -H * // #Hl1d #_ #Hdl1
elim (nlt_ge_false … Hl1d Hdl1)
qed-.