Step
*
2
of Lemma
insert-by-sorted-by
1. [T] : Type
2. eq : T ⟶ T ⟶ 𝔹
3. r : T ⟶ T ⟶ 𝔹
4. ∀a,b:T.  (↑(eq a b) 
⇐⇒ a = b ∈ T)
5. Linorder(T;a,b.↑(r a b))
6. x : T
7. u : T
8. v : T List
9. sorted-by(λx,y. (↑(r x y));v) 
⇒ sorted-by(λx,y. (↑(r x y));insert-by(eq;r;x;v))
⊢ sorted-by(λx,y. (↑(r x y));[u / v]) 
⇒ sorted-by(λx,y. (↑(r x y));insert-by(eq;r;x;[u / v]))
BY
{ (Unfold `insert-by` 0
   THEN Reduce 0
   THEN Try (Fold `insert-by` 0)
   THEN Auto
   THEN Repeat ((SplitOnConclITE THENA Auto))
   THEN Auto
   THEN RWO "sorted-by-cons" 0
   THEN Auto
   THEN (All (RWO "sorted-by-cons"))
   THEN Auto) }
1
1. [T] : Type
2. eq : T ⟶ T ⟶ 𝔹
3. r : T ⟶ T ⟶ 𝔹
4. ∀a,b:T.  (↑(eq a b) 
⇐⇒ a = b ∈ T)
5. Linorder(T;a,b.↑(r a b))
6. x : T
7. u : T
8. v : T List
9. sorted-by(λx,y. (↑(r x y));v)
10. (∀z∈v.(λx,y. (↑(r x y))) u z)
11. ¬↑(eq x u)
12. ↑(r x u)
13. sorted-by(λx,y. (↑(r x y));v)
14. (∀z∈v.(λx,y. (↑(r x y))) u z)
15. sorted-by(λx,y. (↑(r x y));insert-by(eq;r;x;v))
⊢ (∀z∈[u / v].(λx,y. (↑(r x y))) x z)
2
1. [T] : Type
2. eq : T ⟶ T ⟶ 𝔹
3. r : T ⟶ T ⟶ 𝔹
4. ∀a,b:T.  (↑(eq a b) 
⇐⇒ a = b ∈ T)
5. Linorder(T;a,b.↑(r a b))
6. x : T
7. u : T
8. v : T List
9. sorted-by(λx,y. (↑(r x y));v)
10. (∀z∈v.(λx,y. (↑(r x y))) u z)
11. ¬↑(eq x u)
12. ¬↑(r x u)
13. sorted-by(λx,y. (↑(r x y));insert-by(eq;r;x;v))
14. sorted-by(λx,y. (↑(r x y));insert-by(eq;r;x;v))
⊢ (∀z∈insert-by(eq;r;x;v).(λx,y. (↑(r x y))) u z)
Latex:
Latex:
1.  [T]  :  Type
2.  eq  :  T  {}\mrightarrow{}  T  {}\mrightarrow{}  \mBbbB{}
3.  r  :  T  {}\mrightarrow{}  T  {}\mrightarrow{}  \mBbbB{}
4.  \mforall{}a,b:T.    (\muparrow{}(eq  a  b)  \mLeftarrow{}{}\mRightarrow{}  a  =  b)
5.  Linorder(T;a,b.\muparrow{}(r  a  b))
6.  x  :  T
7.  u  :  T
8.  v  :  T  List
9.  sorted-by(\mlambda{}x,y.  (\muparrow{}(r  x  y));v)  {}\mRightarrow{}  sorted-by(\mlambda{}x,y.  (\muparrow{}(r  x  y));insert-by(eq;r;x;v))
\mvdash{}  sorted-by(\mlambda{}x,y.  (\muparrow{}(r  x  y));[u  /  v])  {}\mRightarrow{}  sorted-by(\mlambda{}x,y.  (\muparrow{}(r  x  y));insert-by(eq;r;x;[u  /  v]))
By
Latex:
(Unfold  `insert-by`  0
  THEN  Reduce  0
  THEN  Try  (Fold  `insert-by`  0)
  THEN  Auto
  THEN  Repeat  ((SplitOnConclITE  THENA  Auto))
  THEN  Auto
  THEN  RWO  "sorted-by-cons"  0
  THEN  Auto
  THEN  (All  (RWO  "sorted-by-cons"))
  THEN  Auto)
Home
Index