proposition: Lemma fulfillsAREn s t S C : C \in S0 -> ~~ fulfillsAR S S0 s t C -> (exists2 D : clause, D \in Req C & ~~ suppS S D) \/ ~~ suppS S (t^-|` R C) /\ forall E : clause, E \in base S0 (s^- |` R C) -> ~~ fulfillsAR S S0 s t E.
proof: Proof. move => inS. rewrite /fulfillsAR {1}fulfillsARE inE inS /=. rewrite negb_and negb_or. case/orP => [C1|/andP [C1 C2]]. - by left; apply/allPn. - right. split => // E. rewrite inE => /andP [E1 E2]. move/hasPn : C2 => /(_ E). rewrite E1 E2 //=. by auto. Qed.
imports: Lia mathcomp.ssreflect.ssreflect mathcomp(all_ssreflect) CompDecModal.libs(edone bcase fset base sltype) CompDecModal.CTL(CTL_def demo gen_def relaxed_pruning)