module Elab.Eval.Formula where import Syntax import Data.Map.Strict (Map) import Data.Set (Set) toDnf :: Value -> Maybe Value type Nf = Set (Set Value) normalise :: Value -> Nf compareDNFs :: Value -> Value -> Bool swap :: Ord b => b -> b -> (b, b) possible :: Map Head Bool -> Value -> (Bool, Map Head Bool) truthAssignments :: NFEndp -> Map Name (NFType, NFEndp) -> [Map Name (NFType, NFEndp)]