fact: Fixpoint sat {ff : falsity_flag} (rho : env) (phi : form) : Prop := match phi with | atom P v => i_atom (Vector.map (eval rho) v) | falsity => False | bin Impl phi psi => sat rho phi -> sat rho psi | bin Conj phi psi => sat rho phi /\ sat rho psi | bin Disj phi psi => sat rho phi \/ sat rho psi | quant All phi => forall d : domain, sat (d .: rho) phi | quant Ex phi => exists d : domain, sat (d .: rho) phi end.
imports: Undecidability.FOL.Syntax.Core Undecidability(Shared.ListAutomation) Vector