diff options
author | Greg Brown <greg.brown@cl.cam.ac.uk> | 2022-02-22 13:41:21 +0000 |
---|---|---|
committer | Greg Brown <greg.brown@cl.cam.ac.uk> | 2022-02-22 13:41:21 +0000 |
commit | 209a40f37aa9667a9c03acc4f69a760061cfaeb4 (patch) | |
tree | eb8de244b38228ecff6839b457979538ab4ee84f /src/Helium/Semantics/Denotational | |
parent | cdd3cfc485ee43b1a119559b3f1bb2531376f616 (diff) |
Add if_then_ statements
Diffstat (limited to 'src/Helium/Semantics/Denotational')
-rw-r--r-- | src/Helium/Semantics/Denotational/Core.agda | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/src/Helium/Semantics/Denotational/Core.agda b/src/Helium/Semantics/Denotational/Core.agda index df16874..e605439 100644 --- a/src/Helium/Semantics/Denotational/Core.agda +++ b/src/Helium/Semantics/Denotational/Core.agda @@ -260,6 +260,7 @@ module Expression ⟦ _≔_ ref {canAssign = canAssign} e ⟧ˢ σ γ = update (toWitness canAssign) (⟦ e ⟧ᵉ σ γ) σ γ ⟦_⟧ˢ {Γ = Γ} (declare e s) σ γ = P.map₂ (tupTail Γ) (⟦ s ⟧ˢ σ (tupCons Γ (⟦ e ⟧ᵉ σ γ) γ)) ⟦ invoke p e ⟧ˢ σ γ = ⟦ p ⟧ᵖ σ (⟦ e ⟧ᵉ′ σ γ) , γ + ⟦ if e then s₁ ⟧ˢ σ γ = Bool.if ⟦ e ⟧ᵉ σ γ then ⟦ s₁ ⟧ˢ σ γ else (σ , γ) ⟦ if e then s₁ else s₂ ⟧ˢ σ γ = Bool.if ⟦ e ⟧ᵉ σ γ then ⟦ s₁ ⟧ˢ σ γ else ⟦ s₂ ⟧ˢ σ γ ⟦_⟧ˢ {Γ = Γ} (for m s) σ γ = helper m ⟦ s ⟧ˢ σ γ where |