(* Basic eliminators ********************************************************)
lemma cpt_ind (h) (Q:relation5 …):
- (∀I,G,L. Q 0 G L (⓪{I}) (⓪{I})) →
+ (∀I,G,L. Q 0 G L (⓪[I]) (⓪[I])) →
(∀G,L,s. Q 1 G L (⋆s) (⋆(⫯[h]s))) →
- (â\88\80n,G,K,V1,V2,W2. â¦\83G,Kâ¦\84 ⊢ V1 ⬆[h,n] V2 → Q n G K V1 V2 →
- ⇧*[1] V2 ≘ W2 → Q n G (K.ⓓV1) (#0) W2
- ) â\86\92 (â\88\80n,G,K,V1,V2,W2. â¦\83G,Kâ¦\84 ⊢ V1 ⬆[h,n] V2 → Q n G K V1 V2 →
- ⇧*[1] V2 ≘ W2 → Q (↑n) G (K.ⓛV1) (#0) W2
- ) â\86\92 (â\88\80n,I,G,K,T,U,i. â¦\83G,Kâ¦\84 ⊢ #i ⬆[h,n] T → Q n G K (#i) T →
- ⇧*[1] T ≘ U → Q n G (K.ⓘ{I}) (#↑i) (U)
- ) â\86\92 (â\88\80n,p,I,G,L,V1,V2,T1,T2. â¦\83G,Lâ¦\84 â\8a¢ V1 â¬\86[h,0] V2 â\86\92 â¦\83G,L.â\93\91{I}V1â¦\84 ⊢ T1 ⬆[h,n] T2 →
- Q 0 G L V1 V2 → Q n G (L.ⓑ{I}V1) T1 T2 → Q n G L (ⓑ{p,I}V1.T1) (ⓑ{p,I}V2.T2)
- ) â\86\92 (â\88\80n,G,L,V1,V2,T1,T2. â¦\83G,Lâ¦\84 â\8a¢ V1 â¬\86[h,0] V2 â\86\92 â¦\83G,Lâ¦\84 ⊢ T1 ⬆[h,n] T2 →
+ (â\88\80n,G,K,V1,V2,W2. â\9d¨G,Kâ\9d© ⊢ V1 ⬆[h,n] V2 → Q n G K V1 V2 →
+ ⇧[1] V2 ≘ W2 → Q n G (K.ⓓV1) (#0) W2
+ ) â\86\92 (â\88\80n,G,K,V1,V2,W2. â\9d¨G,Kâ\9d© ⊢ V1 ⬆[h,n] V2 → Q n G K V1 V2 →
+ ⇧[1] V2 ≘ W2 → Q (↑n) G (K.ⓛV1) (#0) W2
+ ) â\86\92 (â\88\80n,I,G,K,T,U,i. â\9d¨G,Kâ\9d© ⊢ #i ⬆[h,n] T → Q n G K (#i) T →
+ ⇧[1] T ≘ U → Q n G (K.ⓘ[I]) (#↑i) (U)
+ ) â\86\92 (â\88\80n,p,I,G,L,V1,V2,T1,T2. â\9d¨G,Lâ\9d© â\8a¢ V1 â¬\86[h,0] V2 â\86\92 â\9d¨G,L.â\93\91[I]V1â\9d© ⊢ T1 ⬆[h,n] T2 →
+ Q 0 G L V1 V2 → Q n G (L.ⓑ[I]V1) T1 T2 → Q n G L (ⓑ[p,I]V1.T1) (ⓑ[p,I]V2.T2)
+ ) â\86\92 (â\88\80n,G,L,V1,V2,T1,T2. â\9d¨G,Lâ\9d© â\8a¢ V1 â¬\86[h,0] V2 â\86\92 â\9d¨G,Lâ\9d© ⊢ T1 ⬆[h,n] T2 →
Q 0 G L V1 V2 → Q n G L T1 T2 → Q n G L (ⓐV1.T1) (ⓐV2.T2)
- ) â\86\92 (â\88\80n,G,L,V1,V2,T1,T2. â¦\83G,Lâ¦\84 â\8a¢ V1 â¬\86[h,n] V2 â\86\92 â¦\83G,Lâ¦\84 ⊢ T1 ⬆[h,n] T2 →
+ ) â\86\92 (â\88\80n,G,L,V1,V2,T1,T2. â\9d¨G,Lâ\9d© â\8a¢ V1 â¬\86[h,n] V2 â\86\92 â\9d¨G,Lâ\9d© ⊢ T1 ⬆[h,n] T2 →
Q n G L V1 V2 → Q n G L T1 T2 → Q n G L (ⓝV1.T1) (ⓝV2.T2)
- ) â\86\92 (â\88\80n,G,L,V1,V2,T. â¦\83G,Lâ¦\84 ⊢ V1 ⬆[h,n] V2 →
+ ) â\86\92 (â\88\80n,G,L,V1,V2,T. â\9d¨G,Lâ\9d© ⊢ V1 ⬆[h,n] V2 →
Q n G L V1 V2 → Q (↑n) G L (ⓝV1.T) V2
) →
- â\88\80n,G,L,T1,T2. â¦\83G,Lâ¦\84 ⊢ T1 ⬆[h,n] T2 → Q n G L T1 T2.
+ â\88\80n,G,L,T1,T2. â\9d¨G,Lâ\9d© ⊢ T1 ⬆[h,n] T2 → Q n G L T1 T2.
#h #Q #IH1 #IH2 #IH3 #IH4 #IH5 #IH6 #IH7 #IH8 #IH9 #n #G #L #T1
generalize in match n; -n
@(fqu_wf_ind (Ⓣ) … G L T1) -G -L -T1 #G0 #L0 * [| * [| * ]]