{-# OPTIONS --safe --without-K #-} open import Data.Product using (∃; _,_; -,_) renaming (_×_ to _∧_; proj₁ to fst; proj₂ to snd) open import Relation.Binary.PropositionalEquality using (_≡_; refl; subst) module Semantics.Presheaf.Evaluation.IML (C : Set) (_⩽_ : (X Y : C) → Set) (⩽-trans : ∀ {X X' X'' : C} (f : X ⩽ X') (g : X' ⩽ X'') → X ⩽ X'') (⩽-trans-assoc : ∀ {X X' X'' X''' : C} (f : X ⩽ X') (g : X' ⩽ X'') (h : X'' ⩽ X''') → ⩽-trans f (⩽-trans g h) ≡ ⩽-trans (⩽-trans f g) h) (⩽-refl : ∀ {X : C} → X ⩽ X) (⩽-refl-unit-left : ∀ {X X' : C} (f : X ⩽ X') → ⩽-trans ⩽-refl f ≡ f) (⩽-refl-unit-right : ∀ {X X' : C} (f : X ⩽ X') → ⩽-trans f ⩽-refl ≡ f) (_R_ : (X Y : C) → Set) (factor : ∀ {X Y Y' : C} → (r : X R Y) → (w : Y ⩽ Y') → ∃ λ X' → X ⩽ X' ∧ X' R Y') (let lCtx : {Γ Δ Δ' : C} → (r : Γ R Δ) → (w : Δ ⩽ Δ') → C ; lCtx = λ r w → factor r w .fst) (let factorWk : ∀ {Γ Δ Δ' : C} (r : Γ R Δ) (w : Δ ⩽ Δ') → Γ ⩽ _ ; factorWk = λ r w → factor r w .snd .fst) (let factorR : ∀ {Γ Δ Δ' : C} (r : Γ R Δ) (w : Δ ⩽ Δ') → _ R Δ' ; factorR = λ r w → factor r w .snd .snd) (factor-pres-id : ∀ {X Y : C} (r : X R Y) → factor r ⩽-refl ≡ (-, ⩽-refl , r)) (factor-pres-∘ : ∀ {X Y Y' Y'' : C} (r : X R Y) (w : Y ⩽ Y') (w' : Y' ⩽ Y'') → factor r (⩽-trans w w') ≡ (-, ⩽-trans (factorWk r w) (factorWk (factorR r w) w') , factorR (factorR r w) w')) where open import Level using (0ℓ) open import Relation.Binary using (Reflexive; Symmetric; Transitive; IsEquivalence; Setoid) import Relation.Binary.Reasoning.Setoid as EqReasoning open import Type open import Context (Ty) import Semantics.Presheaf.Base C _⩽_ ⩽-refl ⩽-trans as PresheafBase import Semantics.Presheaf.CartesianClosure C _⩽_ ⩽-trans ⩽-trans-assoc ⩽-refl ⩽-refl-unit-right ⩽-refl-unit-left as PresheafCartesianClosure import Semantics.Presheaf.Necessity C _⩽_ ⩽-trans ⩽-trans-assoc ⩽-refl ⩽-refl-unit-right ⩽-refl-unit-left _R_ factor factor-pres-id factor-pres-∘ as PresheafNecessity open PresheafBase public open PresheafCartesianClosure public open PresheafNecessity public import Semantics.Clouston.Evaluation.IML Psh _→̇_ _≈̇_ ≈̇-refl ≈̇-sym ≈̇-trans _∘_ ∘-pres-≈̇ ∘-assoc id'[_] id'-unit-left id'-unit-right []' unit' []'-eta _×'_ ⟨_,_⟩' ⟨,⟩'-pres-≈̇ π₁'[_] π₂'[_] ×'-beta-left ×'-beta-right ×'-eta ⟨,⟩'-nat _⇒'_ lam' lam'-pres-≈̇ app' app'-pres-≈̇ ⇒'-beta ⇒'-eta lam'-nat app'-nat ✦'_ ✦'-map_ ✦'-map-pres-≈̇ ✦'-map-pres-id' ✦'-map-pres-∘ □'_ □'-map_ box' box'-pres-≈̇ λ' λ'-pres-≈̇ □'-beta □'-eta box'-nat-dom λ'-nat-dom as CloustonEvaluationIML module Eval (N : Psh) where module CloustonEvaluationIMLEval = CloustonEvaluationIML.Eval N open CloustonEvaluationIMLEval public
Generated from commit 2fd14c996b195ef101dff8919e837907ca0a08aa.