diff options
author | Greg Brown <greg.brown@cl.cam.ac.uk> | 2021-12-21 13:41:20 +0000 |
---|---|---|
committer | Greg Brown <greg.brown@cl.cam.ac.uk> | 2021-12-21 13:41:20 +0000 |
commit | 63f9978f448574d4df1ebacec52125a957482260 (patch) | |
tree | c9ad764891bf09074764fba02fa3c685468b0540 /src/Helium/Semantics/Denotational/Core.agda | |
parent | ef9f0202c1acae915f02ee2b39ab92981f800297 (diff) |
Define semantics of vqdmulh.
Diffstat (limited to 'src/Helium/Semantics/Denotational/Core.agda')
-rw-r--r-- | src/Helium/Semantics/Denotational/Core.agda | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/src/Helium/Semantics/Denotational/Core.agda b/src/Helium/Semantics/Denotational/Core.agda index 8c1e231..bbddc57 100644 --- a/src/Helium/Semantics/Denotational/Core.agda +++ b/src/Helium/Semantics/Denotational/Core.agda @@ -95,9 +95,17 @@ wknRef &x = record ; set = λ σ (v , ρ) x → Reference.set &x σ ρ x >>= λ (σ , ρ) → just (σ , (v , ρ)) } +_,′_ : ∀ {n ls} {Γ : Sets n ls} → Reference n Γ τ → Reference n Γ τ′ → Reference n Γ (τ × τ′) +&x ,′ &y = record + { get = λ σ ρ → Reference.get &x σ ρ >>= λ (σ , x) → Reference.get &y σ ρ >>= λ (σ , y) → just (σ , (x , y)) + ; set = λ σ ρ (x , y) → Reference.set &x σ ρ x >>= λ (σ , ρ) → Reference.set &y σ ρ y + } + -- Statements -infixr 9 _∙_ +infixr 1 _∙_ +infix 4 _≔_ +infixl 2 if_then_else_ skip : ∀ {n ls} {Γ : Sets n ls} → Statement n Γ τ skip cont = cont |