Step * of Lemma longest-prefix_property

No Annotations
[T:Type]
  ∀L:T List. ∀P:(T List) ⟶ 𝔹.
    (longest-prefix(P;L) ≤ L
    ∧ longest-prefix(P;L) < supposing 0 < ||L||
    ∧ (((longest-prefix(P;L) [] ∈ (T List)) ∧ (∀L':T List. (L' <  (¬↑(P L')))))
      ∨ ((↑(P longest-prefix(P;L))) ∧ (∀L':T List. (longest-prefix(P;L) < L'  L' <  (¬↑(P L')))))))
BY
(InductionOnList
   THEN RecUnfold `longest-prefix` 0
   THEN Reduce 0
   THEN (D THENA Auto)
   THEN Try (Complete ((Auto
                        THEN OrLeft
                        THEN Auto
                        THEN (InstLemma `proper-iseg-length` [⌜T⌝;⌜L'⌝;⌜[]⌝]⋅ THEN Auto')
                        THEN ThinTrivial
                        THEN Auto')))
   THEN RepUR ``let`` 0
   THEN (InstHyp [⌜λL'.(P [u L'])⌝(-2)⋅ THENA Auto)
   THEN MoveToConcl (-1)
   THEN (GenConcl ⌜longest-prefix(λL'.(P [u L']);v) pr ∈ (T List)⌝⋅ THENA Auto)
   THEN All Thin
   THEN DVar `pr'
   THEN Reduce 0) }

1
1. [T] Type
2. T
3. List
4. (T List) ⟶ 𝔹
⊢ ([] ≤ v
∧ [] < supposing 0 < ||v||
∧ ((([] [] ∈ (T List)) ∧ (∀L':T List. (L' <  (¬↑(P [u L'])))))
  ∨ ((↑(P [u])) ∧ (∀L':T List. ([] < L'  L' <  (¬↑(P [u L'])))))))
 (if null(v) then []
    if [u] then [u]
    else []
    fi  ≤ [u v]
   ∧ if null(v) then [] if [u] then [u] else [] fi  < [u v] supposing 0 < ||v|| 1
   ∧ (((if null(v) then [] if [u] then [u] else [] fi  [] ∈ (T List)) ∧ (∀L':T List. (L' < [u v]  (¬↑(P L')))))
     ∨ ((↑(P if null(v) then [] if [u] then [u] else [] fi ))
       ∧ (∀L':T List. (if null(v) then [] if [u] then [u] else [] fi  < L'  L' < [u v]  (¬↑(P L')))))))

2
1. [T] Type
2. T
3. List
4. (T List) ⟶ 𝔹
5. u1 T
6. v1 List
⊢ ([u1 v1] ≤ v
∧ [u1 v1] < supposing 0 < ||v||
∧ ((([u1 v1] [] ∈ (T List)) ∧ (∀L':T List. (L' <  (¬↑(P [u L'])))))
  ∨ ((↑(P [u; [u1 v1]])) ∧ (∀L':T List. ([u1 v1] < L'  L' <  (¬↑(P [u L'])))))))
 ([u; [u1 v1]] ≤ [u v]
   ∧ [u; [u1 v1]] < [u v] supposing 0 < ||v|| 1
   ∧ ((([u; [u1 v1]] [] ∈ (T List)) ∧ (∀L':T List. (L' < [u v]  (¬↑(P L')))))
     ∨ ((↑(P [u; [u1 v1]])) ∧ (∀L':T List. ([u; [u1 v1]] < L'  L' < [u v]  (¬↑(P L')))))))


Latex:


Latex:
No  Annotations
\mforall{}[T:Type]
    \mforall{}L:T  List.  \mforall{}P:(T  List)  {}\mrightarrow{}  \mBbbB{}.
        (longest-prefix(P;L)  \mleq{}  L
        \mwedge{}  longest-prefix(P;L)  <  L  supposing  0  <  ||L||
        \mwedge{}  (((longest-prefix(P;L)  =  [])  \mwedge{}  (\mforall{}L':T  List.  (L'  <  L  {}\mRightarrow{}  (\mneg{}\muparrow{}(P  L')))))
            \mvee{}  ((\muparrow{}(P  longest-prefix(P;L)))
                \mwedge{}  (\mforall{}L':T  List.  (longest-prefix(P;L)  <  L'  {}\mRightarrow{}  L'  <  L  {}\mRightarrow{}  (\mneg{}\muparrow{}(P  L')))))))


By


Latex:
(InductionOnList
  THEN  RecUnfold  `longest-prefix`  0
  THEN  Reduce  0
  THEN  (D  0  THENA  Auto)
  THEN  Try  (Complete  ((Auto
                                            THEN  OrLeft
                                            THEN  Auto
                                            THEN  (InstLemma  `proper-iseg-length`  [\mkleeneopen{}T\mkleeneclose{};\mkleeneopen{}L'\mkleeneclose{};\mkleeneopen{}[]\mkleeneclose{}]\mcdot{}  THEN  Auto')
                                            THEN  ThinTrivial
                                            THEN  Auto')))
  THEN  RepUR  ``let``  0
  THEN  (InstHyp  [\mkleeneopen{}\mlambda{}L'.(P  [u  /  L'])\mkleeneclose{}]  (-2)\mcdot{}  THENA  Auto)
  THEN  MoveToConcl  (-1)
  THEN  (GenConcl  \mkleeneopen{}longest-prefix(\mlambda{}L'.(P  [u  /  L']);v)  =  pr\mkleeneclose{}\mcdot{}  THENA  Auto)
  THEN  All  Thin
  THEN  DVar  `pr'
  THEN  Reduce  0)




Home Index