Standard Reduction theory is mainly about when->> can derive value, there must be a calculation method, so that the |-> to launch the value,
The main idea here is that when m->>value, there will be m->p->>value for recursion, and we can get m->p,p |->q,q->> by recursion on P->>value. Value ', value '->> value, then I proved that a lemma can "move" a |-> process in P |->> Value ' out, get m |-> P ', P->q,
In fact, using the Church-rosser theorem on->> is a better proof.
; M->>v N;1M->v n = m->>v N,2M->>v m,3M->>v p, p->>v N = M->>v N; M-v N;1M v n = m->v N,2M->v m'= (ΛX.M)->v (λx.m') ,3M->v m'= = (M N)->v (M'N),4N->v N'= = (M n)->v (M n');(λx.m) N v m[x<-N]; E= [] | (E N) |(V E); M v M'= e[m] |->v e[m']; M->>v u <=> m |->>v V, v->>v u, m! = Value, V, u =Value (Lambda (M->>v U) (Cond ((M-v U) (Cond (M v U); M= (ΛX.M1) M2, U = m1[x<-M2] (M l-v U))) ((M->>v p, p->>v U))); M->v p, p->>v U = M |->>v P', P'->>v U, (Lambda (M->v p, p->>v U); M->>v P (Cond ((M-v P) (Cond (M v P); M= (ΛX.M1) M2, P = m1[x<-M2]= = M l->>v p, p->>v U) ((M= (M1 M2), P = (M1'M2), M1->v M1'); P->>v U (cond (P-v U) (Cond (P v U); P= ((λy.m1"') M2), U = M1"'[x<-M2]; M1->v (λy.m1"') (Cond (M1 V (λx.m1"')) ; M1 v M1'= = M l->v P M1 = (ΛZ.M11) M12, M1 v m11[z<-m12] = (λy.m1"'), M = (((ΛZ.M11) M12) M2), P = ((λx.m1"') M2), U = M1"'[x<-m2](M l->v P, p->>v U)) ((M1= (λx.m1'), M1'= (λx.m1"'), M1'->v M1"'= M1->v M1'); M= ((λx.m1') M2), P = ((λx.m1"') M2), U =m1"'[x<-m2]; P'= M1'[X<-M2], M1'->v M1"'= P'-U (P->>u M1'[x<-m2] M1"'[x<-M2]) = P'-UM L->v P', P'-U) (PQ, Q->>U) P LQ', Q'->> U))))); M-P, p l-> Q', Q'->>U)); MP, p l-> Q = M l-> P', P'-Q (lambda1 (MP, p l->Q); M-P (Cond (M v P); M= (ΛX.M1) M2, P = m1[x<-M2] M L->v p, p-Q) ((M= (M1 M2), P = (P1 P2), M1-P1); P LQ = P = E[p1'], Q = e[q1'], P1'v Q1'; E (Cond ((E= []); P = P1'= (P1 P2) = ((Λx.p1'1) P2), Q = Q1'=P1'1[x<-P2]; M1-P1 (Cond (M1 v P1) M l->v p, p-Q) ((M1= (λx.m1'), P1 = (Λx.p1'1), M = ((λx.m1') M2), p= ((Λx.p1'1) P2), M1'->P1'1) M= ((λx.m1') M2) v m1[x<-m2] = m1[x<-p2], P1'1[X<-P2] =Q))) ((E= (E M)); P= (E[P1'] M2), q= (e[q1'] M2), P1'v Q1', m= (M1 M2), p= (P1 M2),m1->P1 (lambda1 M1->P1,P1 l-> Q1) =>m1 l-> p11,p11q1m1 LP11 (M1 M2) l->(P1 M2) P11Q1 (P1 M2)(Q1 M2)))); Given P', U, find the path from P'-U (define P'->u(Lambda (P'= M1'[X<-m2],u = M1"'[X<-M2], M1'->v M1"'); M1'->v M1"'(Cond (M1'v M1"') ; = M1'= ((λy.m1'1) M1'2), M1"'= M1'1[y<-m1'2], ; P'= ((λy.m1'1) M1'2) [X<-M2] = ((λy.m1'1[X<-M2]) M1'2[x<-m2]),; U = M1'1[y<-m1'2][X<-M2] = M1'1[x<-m2][y<-m1'2[x<-M2]]; P'v M1'1[X<-M2] [Y<-M1'2[X<-M2]]P'v U)((M1'= (λx.m1"'), M1"'= (λx.m1" "), M1"'->v M1" "); P'= (λx.m1"') [x<-m2] = (λx.m1"'[x<-m2]); U= (λx.m1" ") [x<-m2] = (λx.m1" "[x<-M2]) (P'->u M1"'[x<-m2] M1" "[X<-M2] = M1"'[X<-M2], M1" "[x<-m2])= P'U)((M1'= (M1'1M1'2), M1"'= (M1"'1 M1"'2), M1'1->v M1"'1) (P'->u M1'1[X<-M2] M1"'1[X<-M2]) = M1'1[x<-m2]-M1"'1[X<-M2]= P'( U) )))
Certificate Standard Reduction theory