proposition: Theorem informative_completeness s : ( prv (~~: s) ) + (exists2 M : fmodel, #|M| <= f_size s * 2^(4 * f_size s + 2) & exists (w:M), eval s w).
proof: Proof. pose F := ssub (s^+). have sfc_F := @sfc_ssub (s^+). have inU : [fset s^+] \in U F by rewrite powersetE fsub1 ssub_refl. case (ref_compl sfc_F (ssub_refl _) inU) => H;[left|right]. - move/(href_translation sfc_F) : H. rewrite /href. by rewrite <- af1p. - move: H => [M M1 [w Hw]]. exists M; last by exists w; apply: (Hw _ (fset11 _)). apply: leq_trans M1 _. rewrite addn2 expnS mulnA [_*2]mulnC leq_mul ?size_ssub //. by rewrite leq_exp2l // addn1 ltnS -[4]/(2*2) -mulnA leq_mul2l size_ssub. Qed.
imports: Lia mathcomp.ssreflect.ssreflect mathcomp(all_ssreflect) CompDecModal.libs(edone bcase fset base modular_hilbert sltype) CompDecModal.CTL(CTL_def dags demo hilbert relaxed_pruning)