summaryrefslogtreecommitdiff
path: root/source/Syntax/Internal.hs
diff options
context:
space:
mode:
authoradelon <22380201+adelon@users.noreply.github.com>2025-07-02 20:28:22 +0200
committerGitHub <noreply@github.com>2025-07-02 20:28:22 +0200
commit793849dd0b20bc70ea0e0ecfd5008a3806eca0d9 (patch)
tree280949f358a695c5471212cc5b22950399d8cd57 /source/Syntax/Internal.hs
parent3caadfbe0fdb417b8edebc17002ddafe795a4bcc (diff)
parent8fd49ae84e8cc4524c19b20fa0aabb4e77a46cd5 (diff)
Merge pull request #2 from Simon-Kor/main
Merge (finally)
Diffstat (limited to 'source/Syntax/Internal.hs')
-rw-r--r--source/Syntax/Internal.hs12
1 files changed, 12 insertions, 0 deletions
diff --git a/source/Syntax/Internal.hs b/source/Syntax/Internal.hs
index 44603ad..c098380 100644
--- a/source/Syntax/Internal.hs
+++ b/source/Syntax/Internal.hs
@@ -324,6 +324,16 @@ makeDisjunction = \case
[] -> Bottom
es -> List.foldl1' Or es
+makeIff :: [ExprOf a] -> ExprOf a
+makeIff = \case
+ [] -> Bottom
+ es -> List.foldl1' Iff es
+
+makeXor :: [ExprOf a] -> ExprOf a
+makeXor = \case
+ [] -> Bottom
+ es -> List.foldl1' Xor es
+
finiteSet :: NonEmpty (ExprOf a) -> ExprOf a
finiteSet = foldr cons EmptySet
where
@@ -436,6 +446,8 @@ data Proof
| Define VarSymbol Term Proof
| DefineFunction VarSymbol VarSymbol Term Term Proof
+ | DefineFunctionLocal VarSymbol VarSymbol VarSymbol Term (NonEmpty (Term, Formula)) Proof
+
deriving instance Show Proof
deriving instance Eq Proof
deriving instance Ord Proof