Step
*
2
of Lemma
insert-by-no-repeats
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. (no_repeats(T;insert-by(eq;r;x;v))) supposing (no_repeats(T;v) and sorted-by(λx,y. (↑(r x y));v))
⊢ (no_repeats(T;insert-by(eq;r;x;[u / v]))) supposing (no_repeats(T;[u / v]) and sorted-by(λx,y. (↑(r x y));[u / v]))
BY
{ (Unfold `insert-by` 0
   THEN Reduce 0
   THEN Try (Fold `insert-by` 0)
   THEN Auto
   THEN Repeat ((SplitOnConclITE 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. (no_repeats(T;insert-by(eq;r;x;v))) supposing (no_repeats(T;v) and sorted-by(λx,y. (↑(r x y));v))
10. sorted-by(λx,y. (↑(r x y));[u / v])
11. no_repeats(T;[u / v])
12. ¬↑(eq x u)
13. ↑(r x u)
14. no_repeats(T;[u / v])
⊢ ¬(x ∈ [u / v])
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. (no_repeats(T;insert-by(eq;r;x;v))) supposing (no_repeats(T;v) and sorted-by(λx,y. (↑(r x y));v))
10. sorted-by(λx,y. (↑(r x y));[u / v])
11. no_repeats(T;[u / v])
12. ¬↑(eq x u)
13. ¬↑(r x u)
⊢ no_repeats(T;insert-by(eq;r;x;v))
3
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. (no_repeats(T;insert-by(eq;r;x;v))) supposing (no_repeats(T;v) and sorted-by(λx,y. (↑(r x y));v))
10. sorted-by(λx,y. (↑(r x y));[u / v])
11. no_repeats(T;[u / v])
12. ¬↑(eq x u)
13. ¬↑(r x u)
14. no_repeats(T;insert-by(eq;r;x;v))
⊢ ¬(u ∈ insert-by(eq;r;x;v))
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.  (no\_repeats(T;insert-by(eq;r;x;v)))  supposing  (no\_repeats(T;v)  and  sorted-by(\mlambda{}x,y.  (\muparrow{}(r  x  y));v))
\mvdash{}  (no\_repeats(T;insert-by(eq;r;x;[u  /  v])))  supposing 
          (no\_repeats(T;[u  /  v])  and 
          sorted-by(\mlambda{}x,y.  (\muparrow{}(r  x  y));[u  /  v]))
By
Latex:
(Unfold  `insert-by`  0
  THEN  Reduce  0
  THEN  Try  (Fold  `insert-by`  0)
  THEN  Auto
  THEN  Repeat  ((SplitOnConclITE  THEN  Auto)))
Home
Index