X-Git-Url: http://git.megacz.com/?p=coq-hetmet.git;a=blobdiff_plain;f=src%2FHaskStrongToProof.v;h=9c3b0414fa9bdea3c551e81e0f1db6abd8714ddf;hp=13f4907646bbdc26431c04244c78b69d0d2d44e9;hb=cacf56c9e223e864884317718b09c33bd6a37635;hpb=1cfe65d4e2d3292cc038882d8518dd7a48e2c40a diff --git a/src/HaskStrongToProof.v b/src/HaskStrongToProof.v index 13f4907..9c3b041 100644 --- a/src/HaskStrongToProof.v +++ b/src/HaskStrongToProof.v @@ -519,10 +519,10 @@ Lemma update_ξ_lemma `{EQD_VV:EqDecidable VV} Γ ξ (lev:HaskLevel Γ)(varstype Fixpoint expr2antecedent {Γ'}{Δ'}{ξ'}{τ'}(exp:Expr Γ' Δ' ξ' τ') : Tree ??VV := match exp as E in Expr Γ Δ ξ τ with - | EGlobal Γ Δ ξ _ _ => [] + | EGlobal Γ Δ ξ _ _ _ => [] | EVar Γ Δ ξ ev => [ev] | ELit Γ Δ ξ lit lev => [] - | EApp Γ Δ ξ t1 t2 lev e1 e2 => (expr2antecedent e1),,(expr2antecedent e2) + | EApp Γ Δ ξ t1 t2 lev e1 e2 => (expr2antecedent e2),,(expr2antecedent e1) | ELam Γ Δ ξ t1 t2 lev v e => stripOutVars (v::nil) (expr2antecedent e) | ELet Γ Δ ξ tv t lev v ev ebody => ((stripOutVars (v::nil) (expr2antecedent ebody)),,(expr2antecedent ev)) | EEsc Γ Δ ξ ec t lev e => expr2antecedent e @@ -929,7 +929,7 @@ Definition expr2proof : refine (fix expr2proof Γ' Δ' ξ' τ' (exp:Expr Γ' Δ' ξ' τ') {struct exp} : ND Rule [] [Γ' > Δ' > mapOptionTree ξ' (expr2antecedent exp) |- [τ']] := match exp as E in Expr Γ Δ ξ τ with - | EGlobal Γ Δ ξ t wev => let case_EGlobal := tt in _ + | EGlobal Γ Δ ξ g v lev => let case_EGlobal := tt in _ | EVar Γ Δ ξ ev => let case_EVar := tt in _ | ELit Γ Δ ξ lit lev => let case_ELit := tt in _ | EApp Γ Δ ξ t1 t2 lev e1 e2 => let case_EApp := tt in @@ -983,8 +983,7 @@ Definition expr2proof : destruct case_EGlobal. apply nd_rule. simpl. - destruct t as [t lev]. - apply (RGlobal _ _ _ _ wev). + apply (RGlobal _ _ _ g). destruct case_EVar. apply nd_rule. @@ -998,11 +997,11 @@ Definition expr2proof : destruct case_EApp. unfold mapOptionTree; simpl; fold (mapOptionTree ξ). - eapply nd_comp; [ idtac | eapply nd_rule; apply RApp ]. + eapply nd_comp; [ idtac + | eapply nd_rule; + apply (@RApp _ _ _ _ t2 t1) ]. eapply nd_comp; [ apply nd_llecnac | idtac ]. apply nd_prod; auto. - apply e1'. - apply e2'. destruct case_ELam; intros. unfold mapOptionTree; simpl; fold (mapOptionTree ξ).