(* Note: this is pushs *)
(*** pluss *)
rec definition fr2_plus (f:fr2_map) (n:nat) on f ≝ match f with
-[ fr2_nil ⇒ ◊
-| fr2_cons d h f ⇒ ❨d+n,h❩;fr2_plus f n
+[ fr2_empty ⇒ 𝐞
+| fr2_lcons d h f ⇒ ❨d+n,h❩◗fr2_plus f n
].
interpretation
(* Basic constructions ******************************************************)
(*** pluss_SO2 *)
-lemma fr2_plus_cons_unit (d) (h) (f):
- ((❨d,h❩;f)+𝟏) = ❨↑d,h❩;f+𝟏.
+lemma fr2_plus_lcons_unit (d) (h) (f):
+ ((❨d,h❩◗f)+𝟏) = ❨↑d,h❩◗f+𝟏.
normalize // qed.
(* Basic inversions *********************************************************)
(*** pluss_inv_nil2 *)
-lemma fr2_plus_inv_nil_dx (n) (f):
- f+n = ◊ → f = ◊.
+lemma fr2_plus_inv_empty_dx (n) (f):
+ f+n = 𝐞 → f = 𝐞.
#n * // normalize
#d #h #f #H destruct
qed.
(*** pluss_inv_cons2 *)
-lemma fr2_plus_inv_cons_dx (n) (d) (h) (f2) (f):
- f + n = ❨d,h❩;f2 →
- ∃∃f1. f1+n = f2 & f = ❨d-n,h❩;f1.
+lemma fr2_plus_inv_lcons_dx (n) (d) (h) (f2) (f):
+ f + n = ❨d,h❩◗f2 →
+ ∃∃f1. f1+n = f2 & f = ❨d-n,h❩◗f1.
#n #d #h #f2 *
[ normalize #H destruct
| #d1 #h1 #f1 whd in ⊢ (??%?→?); #H destruct