{-# OPTIONS --allow-unsolved-metas #-}
open import Relation.Binary using (Decidable)
open import Relation.Binary.PropositionalEquality using (_≡_)
module LogRel.Gen
{{ Α : Set }}
{{ C : Set }}
{{ Var : Set }}
{{ decEqVar : Decidable (_≡_ {A = Var}) }}
{{ Κ : Set }}
where
import SyntaxRew
open SyntaxRew
{{ Α }}
{{ C }}
{{ Var }}
{{ decEqVar }}
{{ Κ }}
import LogRel
open LogRel
{{ Α }}
{{ C }}
{{ Var }}
{{ decEqVar }}
{{ Κ }}
import SmlSem
open SmlSem
{{ Α }}
{{ C }}
{{ Var }}
{{ decEqVar }}
{{ Κ }}
using (∀gen)
log-gen' : ∀ {S : Sig} {P : Prog} {Γ' : Ctx} {e : MT} {G : Go} {x : Var} {A : T} →
logrel S P (Γ' , x ∷ A) e (go G) →
logrel S P Γ' e (go (∀Go x A G))
log-gen' log = l∀R (log-subst (log-weaken-sig {!log!} {!!}) {!!})
log-gen : ∀ {S : Sig} {P : Prog} {Γ' : Ctx} {e : PT} {G : Go} →
logrel S P Γ' (inMT e) (go G) →
logrel S P · (inMT e) (go (∀gen Γ' G))
log-gen {Γ' = ·} log = log
log-gen {Γ' = Γ' , x ∷ A} log = log-gen {Γ' = Γ'} (log-gen' log)