From 37cb8e054117170535c4f886606ce6c6fd630d3d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Frederik=20Hangh=C3=B8j=20Iversen?= Date: Wed, 7 Jun 2017 22:31:49 +0200 Subject: [PATCH] Add Primitives --- src/Primitives.agda | 62 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 62 insertions(+) create mode 100644 src/Primitives.agda diff --git a/src/Primitives.agda b/src/Primitives.agda new file mode 100644 index 0000000..258b1f7 --- /dev/null +++ b/src/Primitives.agda @@ -0,0 +1,62 @@ +{-# OPTIONS --cubical #-} +module Primitives where + + + +module Postulates where + open import Agda.Primitive public + open CubicalPrimitives public renaming (isOneEmpty to empty) + + postulate + Path : ∀ {a} {A : Set a} → A → A → Set a + PathP : ∀ {a} → (A : I → Set a) → A i0 → A i1 → Set a + + {-# BUILTIN PATH Path #-} + {-# BUILTIN PATHP PathP #-} + + primitive + primPathApply : ∀ {a} {A : Set a} {x y : A} → Path x y → I → A + primPathPApply : ∀ {a} → {A : I → Set a} → ∀ {x y} → PathP A x y → (i : I) → A i + + postulate + Id : ∀ {a} {A : Set a} → A → A → Set a + + {-# BUILTIN ID Id #-} + {-# BUILTIN CONID conid #-} + + primitive + primDepIMin : _ + primIdFace : {a : Level} {A : Set a} {x y : A} → Id x y → I + primIdPath : {a : Level} {A : Set a} {x y : A} → Id x y → Path x y + + primitive + primIdJ : ∀ {a}{p}{A : Set a}{x : A}(P : ∀ y → Id x y → Set p) → P x (conid i1 (\ i -> x)) → ∀ {y} (p : Id x y) → P y p + + {-# BUILTIN SUB Sub #-} + + postulate + inc : ∀ {a} {A : Set a} {φ} (x : A) → Sub {A = A} φ (\ _ → x) + + {-# BUILTIN SUBIN inc #-} + + primitive + primSubOut : {a : Level} {A : Set a} {φ : I} {u : Partial A φ} → Sub φ u → A + + +open Postulates public renaming (primPathApply to _∙_; primIMin to _∧_; primIMax to _∨_; primINeg to ~_ + ; primPFrom1 to p[_] + ; primIdJ to J + ; primSubOut to ouc + ; Path to Path' + ) + +module Unsafe' (dummy : Set₁) = Postulates + +unsafeComp = Unsafe'.primComp Set +unsafePOr = Unsafe'.primPOr Set + +Path : ∀ {a} {A : Set a} → A → A → Set a +Path {A = A} = PathP (\ _ → A) + +infix 4 _≡_ +_≡_ = Path