You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
mapM_ (\( EQ (l, r)) ->if hasTypeType l then report (show l) (show r) (instEqT l r) else report (show l) (show r) (instEqE l r)) $Set.toList $IP.eqs pres'
76
-
mapM_ (\(en'', EQ (l, r)) -> report (show l) (show r) (schEqT l r en'')) $Set.toList $ obs_eqs sch
77
-
mapM_ (\(en'', EQ (l, r)) -> report (show l) (show r) (schEqE l r en'')) $Set.toList $ path_eqs sch
78
-
where
79
-
instEqE l r = nf alg (down1 l) == nf alg (down1 r)
80
-
instEqT l r = dp' $EQ ((repr'' alg (nf'' alg l)), (repr'' alg (nf'' alg r))) --morally we should create a new dp for the talg, but that's computationally intractable and this check still helps
81
-
report _ _ True=return()
82
-
report l r False=Left$"Not satisified: "++ l ++" = "++ r
83
-
schEqE l r e =foldr (\x b -> (evalSchTerm' alg x l == evalSchTerm' alg x r) && b) True (en alg e)
84
-
schEqT l r e =foldr (\x b -> dp' (EQ (repr'' alg (evalSchTerm alg x l), repr'' alg (evalSchTerm alg x r))) && b) True (en alg e)
0 commit comments