X-Git-Url: http://git.megacz.com/?p=coq-hetmet.git;a=blobdiff_plain;f=src%2FHaskStrong.v;fp=src%2FHaskStrong.v;h=611a4c8aec813069ef2b3653d59141aca1f92650;hp=8efd0af15b870e57baf712d8d4d3906cc341ca49;hb=ff9fafbf161b4f12688d5986518be874d39ab3ee;hpb=693c6f552555f14c085a71e0b03c67d3c051eaa1 diff --git a/src/HaskStrong.v b/src/HaskStrong.v index 8efd0af..611a4c8 100644 --- a/src/HaskStrong.v +++ b/src/HaskStrong.v @@ -31,6 +31,10 @@ Section HaskStrong. Coercion scbwv_sac : StrongCaseBranchWithVVs >-> StrongAltCon. Inductive Expr : forall Γ (Δ:CoercionEnv Γ), (VV -> LeveledHaskType Γ ★) -> LeveledHaskType Γ ★ -> Type := + + (* an "EGlobal" is any variable which is free in the expression which was passed to -fcoqpass (ie bound outside it) *) + | EGlobal: ∀ Γ Δ ξ t, WeakExprVar -> Expr Γ Δ ξ t + | EVar : ∀ Γ Δ ξ ev, Expr Γ Δ ξ (ξ ev) | ELit : ∀ Γ Δ ξ lit l, Expr Γ Δ ξ (literalType lit@@l) | EApp : ∀ Γ Δ ξ t1 t2 l, Expr Γ Δ ξ (t2--->t1 @@ l) -> Expr Γ Δ ξ (t2 @@ l) -> Expr Γ Δ ξ (t1 @@ l)