(*** sor_tl *)
lemma gr_sor_tl:
- â\88\80f1,f2,f. f1 â\8b\93 f2 â\89\98 f â\86\92 ⫱f1 â\8b\93 ⫱f2 â\89\98 ⫱f.
+ â\88\80f1,f2,f. f1 â\8b\93 f2 â\89\98 f â\86\92 â«°f1 â\8b\93 â«°f2 â\89\98 â«°f.
#f1 cases (gr_map_split_tl f1) #H1
#f2 cases (gr_map_split_tl f2) #H2
#f #Hf
(*** sor_xxn_tl *)
lemma gr_sor_next_tl:
∀g1,g2,g. g1 ⋓ g2 ≘ g → ∀f. ↑f = g →
- (â\88\83â\88\83f1,f2. f1 â\8b\93 f2 â\89\98 f & â\86\91f1 = g1 & ⫱g2 = f2) ∨
- (â\88\83â\88\83f1,f2. f1 â\8b\93 f2 â\89\98 f & ⫱g1 = f1 & ↑f2 = g2).
+ (â\88\83â\88\83f1,f2. f1 â\8b\93 f2 â\89\98 f & â\86\91f1 = g1 & â«°g2 = f2) ∨
+ (â\88\83â\88\83f1,f2. f1 â\8b\93 f2 â\89\98 f & â«°g1 = f1 & ↑f2 = g2).
#g1 #g2 #g #H #f #H0 elim (gr_sor_inv_next … H … H0) -H -H0 *
/3 width=5 by ex3_2_intro, or_introl, or_intror/
qed-.
(*** sor_xnx_tl *)
lemma gr_sor_next_dx_tl:
∀g1,g2,g. g1 ⋓ g2 ≘ g → ∀f2. ↑f2 = g2 →
- â\88\83â\88\83f1,f. f1 â\8b\93 f2 â\89\98 f & ⫱g1 = f1 & ↑f = g.
+ â\88\83â\88\83f1,f. f1 â\8b\93 f2 â\89\98 f & â«°g1 = f1 & ↑f = g.
#g1 elim (gr_map_split_tl g1) #H1 #g2 #g #H #f2 #H2
[ elim (gr_sor_inv_push_next … H … H1 H2)
| elim (gr_sor_inv_next_bi … H … H1 H2)
(*** sor_nxx_tl *)
lemma gr_sor_next_sn_tl:
∀g1,g2,g. g1 ⋓ g2 ≘ g → ∀f1. ↑f1 = g1 →
- â\88\83â\88\83f2,f. f1 â\8b\93 f2 â\89\98 f & ⫱g2 = f2 & ↑f = g.
+ â\88\83â\88\83f2,f. f1 â\8b\93 f2 â\89\98 f & â«°g2 = f2 & ↑f = g.
#g1 #g2 elim (gr_map_split_tl g2) #H2 #g #H #f1 #H1
[ elim (gr_sor_inv_next_push … H … H1 H2)
| elim (gr_sor_inv_next_bi … H … H1 H2)
(*** sor_inv_tl_sn *)
lemma gr_sor_inv_tl_sn:
- â\88\80f1,f2,f. ⫱f1 ⋓ f2 ≘ f → f1 ⋓ ↑f2 ≘ ↑f.
+ â\88\80f1,f2,f. â«°f1 ⋓ f2 ≘ f → f1 ⋓ ↑f2 ≘ ↑f.
#f1 #f2 #f elim (gr_map_split_tl f1)
/2 width=7 by gr_sor_push_next, gr_sor_next_bi/
qed-.
(*** sor_inv_tl_dx *)
lemma gr_sor_inv_tl_dx:
- â\88\80f1,f2,f. f1 â\8b\93 ⫱f2 ≘ f → ↑f1 ⋓ f2 ≘ ↑f.
+ â\88\80f1,f2,f. f1 â\8b\93 â«°f2 ≘ f → ↑f1 ⋓ f2 ≘ ↑f.
#f1 #f2 #f elim (gr_map_split_tl f2)
/2 width=7 by gr_sor_next_push, gr_sor_next_bi/
qed-.