(* (mu_form_ap_ok vf f) means that for all atomic propositions p occurring in f
   (vf ap)=true *)
Inductive mu_form_ap_ok (vf : ad -> bool) : mu_form -> Prop :=
  | mu_0_ok : mu_form_ap_ok vf mu_0
  | mu_1_ok : mu_form_ap_ok vf mu_1
  | mu_ap_ok : forall p : ad, vf p = true -> mu_form_ap_ok vf (mu_ap p)
  | mu_rel_var_ok : forall P : ad, mu_form_ap_ok vf (mu_rel_var P)
  | mu_neg_ok :
      forall f : mu_form, mu_form_ap_ok vf f -> mu_form_ap_ok vf (mu_neg f)
  | mu_and_ok :
      forall f g : mu_form,
      mu_form_ap_ok vf f ->
      mu_form_ap_ok vf g -> mu_form_ap_ok vf (mu_and f g)
  | mu_or_ok :
      forall f g : mu_form,
      mu_form_ap_ok vf f ->
      mu_form_ap_ok vf g -> mu_form_ap_ok vf (mu_or f g)
  | mu_impl_ok :
      forall f g : mu_form,
      mu_form_ap_ok vf f ->
      mu_form_ap_ok vf g -> mu_form_ap_ok vf (mu_impl f g)
  | mu_iff_ok :
      forall f g : mu_form,
      mu_form_ap_ok vf f ->
      mu_form_ap_ok vf g -> mu_form_ap_ok vf (mu_iff f g)
  | mu_all_ok :
      forall (t : ad) (f : mu_form),
      mu_form_ap_ok vf f -> mu_form_ap_ok vf (mu_all t f)
  | mu_ex_ok :
      forall (t : ad) (f : mu_form),
      mu_form_ap_ok vf f -> mu_form_ap_ok vf (mu_ex t f)
  | mu_mu_ok :
      forall (P : ad) (f : mu_form),
      mu_form_ap_ok vf f -> mu_form_ap_ok vf (mu_mu P f).(* (mu_form_ap_ok vf f) means that for all atomic propositions p occurring in f
   (vf ap)=true *)
Inductive mu_form_ap_ok (vf : ad -> bool) : mu_form -> Prop :=
  | mu_0_ok : mu_form_ap_ok vf mu_0
  | mu_1_ok : mu_form_ap_ok vf mu_1
  | mu_ap_ok : forall p : ad, vf p = true -> mu_form_ap_ok vf (mu_ap p)
  | mu_rel_var_ok : forall P : ad, mu_form_ap_ok vf (mu_rel_var P)
  | mu_neg_ok :
      forall f : mu_form, mu_form_ap_ok vf f -> mu_form_ap_ok vf (mu_neg f)
  | mu_and_ok :
      forall f g : mu_form,
      mu_form_ap_ok vf f ->
      mu_form_ap_ok vf g -> mu_form_ap_ok vf (mu_and f g)
  | mu_or_ok :
      forall f g : mu_form,
      mu_form_ap_ok vf f ->
      mu_form_ap_ok vf g -> mu_form_ap_ok vf (mu_or f g)
  | mu_impl_ok :
      forall f g : mu_form,
      mu_form_ap_ok vf f ->
      mu_form_ap_ok vf g -> mu_form_ap_ok vf (mu_impl f g)
  | mu_iff_ok :
      forall f g : mu_form,
      mu_form_ap_ok vf f ->
      mu_form_ap_ok vf g -> mu_form_ap_ok vf (mu_iff f g)
  | mu_all_ok :
      forall (t : ad) (f : mu_form),
      mu_form_ap_ok vf f -> mu_form_ap_ok vf (mu_all t f)
  | mu_ex_ok :
      forall (t : ad) (f : mu_form),
      mu_form_ap_ok vf f -> mu_form_ap_ok vf (mu_ex t f)
  | mu_mu_ok :
      forall (P : ad) (f : mu_form),
      mu_form_ap_ok vf f -> mu_form_ap_ok vf (mu_mu P f).(* (mu_form_ap_ok vf f) means that for all atomic propositions p occurring in f
   (vf ap)=true *)
Inductive mu_form_ap_ok (vf : ad -> bool) : mu_form -> Prop :=
  | mu_0_ok : mu_form_ap_ok vf mu_0
  | mu_1_ok : mu_form_ap_ok vf mu_1
  | mu_ap_ok : forall p : ad, vf p = true -> mu_form_ap_ok vf (mu_ap p)
  | mu_rel_var_ok : forall P : ad, mu_form_ap_ok vf (mu_rel_var P)
  | mu_neg_ok :
      forall f : mu_form, mu_form_ap_ok vf f -> mu_form_ap_ok vf (mu_neg f)
  | mu_and_ok :
      forall f g : mu_form,
      mu_form_ap_ok vf f ->
      mu_form_ap_ok vf g -> mu_form_ap_ok vf (mu_and f g)
  | mu_or_ok :
      forall f g : mu_form,
      mu_form_ap_ok vf f ->
      mu_form_ap_ok vf g -> mu_form_ap_ok vf (mu_or f g)
  | mu_impl_ok :
      forall f g : mu_form,
      mu_form_ap_ok vf f ->
      mu_form_ap_ok vf g -> mu_form_ap_ok vf (mu_impl f g)
  | mu_iff_ok :
      forall f g : mu_form,
      mu_form_ap_ok vf f ->
      mu_form_ap_ok vf g -> mu_form_ap_ok vf (mu_iff f g)
  | mu_all_ok :
      forall (t : ad) (f : mu_form),
      mu_form_ap_ok vf f -> mu_form_ap_ok vf (mu_all t f)
  | mu_ex_ok :
      forall (t : ad) (f : mu_form),
      mu_form_ap_ok vf f -> mu_form_ap_ok vf (mu_ex t f)
  | mu_mu_ok :
      forall (P : ad) (f : mu_form),
      mu_form_ap_ok vf f -> mu_form_ap_ok vf (mu_mu P f).(* (mu_form_ap_ok vf f) means that for all atomic propositions p occurring in f
   (vf ap)=true *)
Inductive mu_form_ap_ok (vf : ad -> bool) : mu_form -> Prop :=
  | mu_0_ok : mu_form_ap_ok vf mu_0
  | mu_1_ok : mu_form_ap_ok vf mu_1
  | mu_ap_ok : forall p : ad, vf p = true -> mu_form_ap_ok vf (mu_ap p)
  | mu_rel_var_ok : forall P : ad, mu_form_ap_ok vf (mu_rel_var P)
  | mu_neg_ok :
      forall f : mu_form, mu_form_ap_ok vf f -> mu_form_ap_ok vf (mu_neg f)
  | mu_and_ok :
      forall f g : mu_form,
      mu_form_ap_ok vf f ->
      mu_form_ap_ok vf g -> mu_form_ap_ok vf (mu_and f g)
  | mu_or_ok :
      forall f g : mu_form,
      mu_form_ap_ok vf f ->
      mu_form_ap_ok vf g -> mu_form_ap_ok vf (mu_or f g)
  | mu_impl_ok :
      forall f g : mu_form,
      mu_form_ap_ok vf f ->
      mu_form_ap_ok vf g -> mu_form_ap_ok vf (mu_impl f g)
  | mu_iff_ok :
      forall f g : mu_form,
      mu_form_ap_ok vf f ->
      mu_form_ap_ok vf g -> mu_form_ap_ok vf (mu_iff f g)
  | mu_all_ok :
      forall (t : ad) (f : mu_form),
      mu_form_ap_ok vf f -> mu_form_ap_ok vf (mu_all t f)
  | mu_ex_ok :
      forall (t : ad) (f : mu_form),
      mu_form_ap_ok vf f -> mu_form_ap_ok vf (mu_ex t f)
  | mu_mu_ok :
      forall (P : ad) (f : mu_form),
      mu_form_ap_ok vf f -> mu_form_ap_ok vf (mu_mu P f).(* (mu_form_ap_ok vf f) means that for all atomic propositions p occurring in f
   (vf ap)=true *)
Inductive mu_form_ap_ok (vf : ad -> bool) : mu_form -> Prop :=
  | mu_0_ok : mu_form_ap_ok vf mu_0
  | mu_1_ok : mu_form_ap_ok vf mu_1
  | mu_ap_ok : forall p : ad, vf p = true -> mu_form_ap_ok vf (mu_ap p)
  | mu_rel_var_ok : forall P : ad, mu_form_ap_ok vf (mu_rel_var P)
  | mu_neg_ok :
      forall f : mu_form, mu_form_ap_ok vf f -> mu_form_ap_ok vf (mu_neg f)
  | mu_and_ok :
      forall f g : mu_form,
      mu_form_ap_ok vf f ->
      mu_form_ap_ok vf g -> mu_form_ap_ok vf (mu_and f g)
  | mu_or_ok :
      forall f g : mu_form,
      mu_form_ap_ok vf f ->
      mu_form_ap_ok vf g -> mu_form_ap_ok vf (mu_or f g)
  | mu_impl_ok :
      forall f g : mu_form,
      mu_form_ap_ok vf f ->
      mu_form_ap_ok vf g -> mu_form_ap_ok vf (mu_impl f g)
  | mu_iff_ok :
      forall f g : mu_form,
      mu_form_ap_ok vf f ->
      mu_form_ap_ok vf g -> mu_form_ap_ok vf (mu_iff f g)
  | mu_all_ok :
      forall (t : ad) (f : mu_form),
      mu_form_ap_ok vf f -> mu_form_ap_ok vf (mu_all t f)
  | mu_ex_ok :
      forall (t : ad) (f : mu_form),
      mu_form_ap_ok vf f -> mu_form_ap_ok vf (mu_ex t f)
  | mu_mu_ok :
      forall (P : ad) (f : mu_form),
      mu_form_ap_ok vf f -> mu_form_ap_ok vf (mu_mu P f).(* (mu_form_ap_ok vf f) means that for all atomic propositions p occurring in f
   (vf ap)=true *)
Inductive mu_form_ap_ok (vf : ad -> bool) : mu_form -> Prop :=
  | mu_0_ok : mu_form_ap_ok vf mu_0
  | mu_1_ok : mu_form_ap_ok vf mu_1
  | mu_ap_ok : forall p : ad, vf p = true -> mu_form_ap_ok vf (mu_ap p)
  | mu_rel_var_ok : forall P : ad, mu_form_ap_ok vf (mu_rel_var P)
  | mu_neg_ok :
      forall f : mu_form, mu_form_ap_ok vf f -> mu_form_ap_ok vf (mu_neg f)
  | mu_and_ok :
      forall f g : mu_form,
      mu_form_ap_ok vf f ->
      mu_form_ap_ok vf g -> mu_form_ap_ok vf (mu_and f g)
  | mu_or_ok :
      forall f g : mu_form,
      mu_form_ap_ok vf f ->
      mu_form_ap_ok vf g -> mu_form_ap_ok vf (mu_or f g)
  | mu_impl_ok :
      forall f g : mu_form,
      mu_form_ap_ok vf f ->
      mu_form_ap_ok vf g -> mu_form_ap_ok vf (mu_impl f g)
  | mu_iff_ok :
      forall f g : mu_form,
      mu_form_ap_ok vf f ->
      mu_form_ap_ok vf g -> mu_form_ap_ok vf (mu_iff f g)
  | mu_all_ok :
      forall (t : ad) (f : mu_form),
      mu_form_ap_ok vf f -> mu_form_ap_ok vf (mu_all t f)
  | mu_ex_ok :
      forall (t : ad) (f : mu_form),
      mu_form_ap_ok vf f -> mu_form_ap_ok vf (mu_ex t f)
  | mu_mu_ok :
      forall (P : ad) (f : mu_form),
      mu_form_ap_ok vf f -> mu_form_ap_ok vf (mu_mu P f).(* (mu_form_ap_ok vf f) means that for all atomic propositions p occurring in f
   (vf ap)=true *)
Inductive mu_form_ap_ok (vf : ad -> bool) : mu_form -> Prop :=
  | mu_0_ok : mu_form_ap_ok vf mu_0
  | mu_1_ok : mu_form_ap_ok vf mu_1
  | mu_ap_ok : forall p : ad, vf p = true -> mu_form_ap_ok vf (mu_ap p)
  | mu_rel_var_ok : forall P : ad, mu_form_ap_ok vf (mu_rel_var P)
  | mu_neg_ok :
      forall f : mu_form, mu_form_ap_ok vf f -> mu_form_ap_ok vf (mu_neg f)
  | mu_and_ok :
      forall f g : mu_form,
      mu_form_ap_ok vf f ->
      mu_form_ap_ok vf g -> mu_form_ap_ok vf (mu_and f g)
  | mu_or_ok :
      forall f g : mu_form,
      mu_form_ap_ok vf f ->
      mu_form_ap_ok vf g -> mu_form_ap_ok vf (mu_or f g)
  | mu_impl_ok :
      forall f g : mu_form,
      mu_form_ap_ok vf f ->
      mu_form_ap_ok vf g -> mu_form_ap_ok vf (mu_impl f g)
  | mu_iff_ok :
      forall f g : mu_form,
      mu_form_ap_ok vf f ->
      mu_form_ap_ok vf g -> mu_form_ap_ok vf (mu_iff f g)
  | mu_all_ok :
      forall (t : ad) (f : mu_form),
      mu_form_ap_ok vf f -> mu_form_ap_ok vf (mu_all t f)
  | mu_ex_ok :
      forall (t : ad) (f : mu_form),
      mu_form_ap_ok vf f -> mu_form_ap_ok vf (mu_ex t f)
  | mu_mu_ok :
      forall (P : ad) (f : mu_form),
      mu_form_ap_ok vf f -> mu_form_ap_ok vf (mu_mu P f).(* (mu_form_ap_ok vf f) means that for all atomic propositions p occurring in f
   (vf ap)=true *)
Inductive mu_form_ap_ok (vf : ad -> bool) : mu_form -> Prop :=
  | mu_0_ok : mu_form_ap_ok vf mu_0
  | mu_1_ok : mu_form_ap_ok vf mu_1
  | mu_ap_ok : forall p : ad, vf p = true -> mu_form_ap_ok vf (mu_ap p)
  | mu_rel_var_ok : forall P : ad, mu_form_ap_ok vf (mu_rel_var P)
  | mu_neg_ok :
      forall f : mu_form, mu_form_ap_ok vf f -> mu_form_ap_ok vf (mu_neg f)
  | mu_and_ok :
      forall f g : mu_form,
      mu_form_ap_ok vf f ->
      mu_form_ap_ok vf g -> mu_form_ap_ok vf (mu_and f g)
  | mu_or_ok :
      forall f g : mu_form,
      mu_form_ap_ok vf f ->
      mu_form_ap_ok vf g -> mu_form_ap_ok vf (mu_or f g)
  | mu_impl_ok :
      forall f g : mu_form,
      mu_form_ap_ok vf f ->
      mu_form_ap_ok vf g -> mu_form_ap_ok vf (mu_impl f g)
  | mu_iff_ok :
      forall f g : mu_form,
      mu_form_ap_ok vf f ->
      mu_form_ap_ok vf g -> mu_form_ap_ok vf (mu_iff f g)
  | mu_all_ok :
      forall (t : ad) (f : mu_form),
      mu_form_ap_ok vf f -> mu_form_ap_ok vf (mu_all t f)
  | mu_ex_ok :
      forall (t : ad) (f : mu_form),
      mu_form_ap_ok vf f -> mu_form_ap_ok vf (mu_ex t f)
  | mu_mu_ok :
      forall (P : ad) (f : mu_form),
      mu_form_ap_ok vf f -> mu_form_ap_ok vf (mu_mu P f).(* (mu_form_ap_ok vf f) means that for all atomic propositions p occurring in f
   (vf ap)=true *)
Inductive mu_form_ap_ok (vf : ad -> bool) : mu_form -> Prop :=
  | mu_0_ok : mu_form_ap_ok vf mu_0
  | mu_1_ok : mu_form_ap_ok vf mu_1
  | mu_ap_ok : forall p : ad, vf p = true -> mu_form_ap_ok vf (mu_ap p)
  | mu_rel_var_ok : forall P : ad, mu_form_ap_ok vf (mu_rel_var P)
  | mu_neg_ok :
      forall f : mu_form, mu_form_ap_ok vf f -> mu_form_ap_ok vf (mu_neg f)
  | mu_and_ok :
      forall f g : mu_form,
      mu_form_ap_ok vf f ->
      mu_form_ap_ok vf g -> mu_form_ap_ok vf (mu_and f g)
  | mu_or_ok :
      forall f g : mu_form,
      mu_form_ap_ok vf f ->
      mu_form_ap_ok vf g -> mu_form_ap_ok vf (mu_or f g)
  | mu_impl_ok :
      forall f g : mu_form,
      mu_form_ap_ok vf f ->
      mu_form_ap_ok vf g -> mu_form_ap_ok vf (mu_impl f g)
  | mu_iff_ok :
      forall f g : mu_form,
      mu_form_ap_ok vf f ->
      mu_form_ap_ok vf g -> mu_form_ap_ok vf (mu_iff f g)
  | mu_all_ok :
      forall (t : ad) (f : mu_form),
      mu_form_ap_ok vf f -> mu_form_ap_ok vf (mu_all t f)
  | mu_ex_ok :
      forall (t : ad) (f : mu_form),
      mu_form_ap_ok vf f -> mu_form_ap_ok vf (mu_ex t f)
  | mu_mu_ok :
      forall (P : ad) (f : mu_form),
      mu_form_ap_ok vf f -> mu_form_ap_ok vf (mu_mu P f).(* (mu_form_ap_ok vf f) means that for all atomic propositions p occurring in f
   (vf ap)=true *)
Inductive mu_form_ap_ok (vf : ad -> bool) : mu_form -> Prop :=
  | mu_0_ok : mu_form_ap_ok vf mu_0
  | mu_1_ok : mu_form_ap_ok vf mu_1
  | mu_ap_ok : forall p : ad, vf p = true -> mu_form_ap_ok vf (mu_ap p)
  | mu_rel_var_ok : forall P : ad, mu_form_ap_ok vf (mu_rel_var P)
  | mu_neg_ok :
      forall f : mu_form, mu_form_ap_ok vf f -> mu_form_ap_ok vf (mu_neg f)
  | mu_and_ok :
      forall f g : mu_form,
      mu_form_ap_ok vf f ->
      mu_form_ap_ok vf g -> mu_form_ap_ok vf (mu_and f g)
  | mu_or_ok :
      forall f g : mu_form,
      mu_form_ap_ok vf f ->
      mu_form_ap_ok vf g -> mu_form_ap_ok vf (mu_or f g)
  | mu_impl_ok :
      forall f g : mu_form,
      mu_form_ap_ok vf f ->
      mu_form_ap_ok vf g -> mu_form_ap_ok vf (mu_impl f g)
  | mu_iff_ok :
      forall f g : mu_form,
      mu_form_ap_ok vf f ->
      mu_form_ap_ok vf g -> mu_form_ap_ok vf (mu_iff f g)
  | mu_all_ok :
      forall (t : ad) (f : mu_form),
      mu_form_ap_ok vf f -> mu_form_ap_ok vf (mu_all t f)
  | mu_ex_ok :
      forall (t : ad) (f : mu_form),
      mu_form_ap_ok vf f -> mu_form_ap_ok vf (mu_ex t f)
  | mu_mu_ok :
      forall (P : ad) (f : mu_form),
      mu_form_ap_ok vf f -> mu_form_ap_ok vf (mu_mu P f).(* (mu_form_ap_ok vf f) means that for all atomic propositions p occurring in f
   (vf ap)=true *)
Inductive mu_form_ap_ok (vf : ad -> bool) : mu_form -> Prop :=
  | mu_0_ok : mu_form_ap_ok vf mu_0
  | mu_1_ok : mu_form_ap_ok vf mu_1
  | mu_ap_ok : forall p : ad, vf p = true -> mu_form_ap_ok vf (mu_ap p)
  | mu_rel_var_ok : forall P : ad, mu_form_ap_ok vf (mu_rel_var P)
  | mu_neg_ok :
      forall f : mu_form, mu_form_ap_ok vf f -> mu_form_ap_ok vf (mu_neg f)
  | mu_and_ok :
      forall f g : mu_form,
      mu_form_ap_ok vf f ->
      mu_form_ap_ok vf g -> mu_form_ap_ok vf (mu_and f g)
  | mu_or_ok :
      forall f g : mu_form,
      mu_form_ap_ok vf f ->
      mu_form_ap_ok vf g -> mu_form_ap_ok vf (mu_or f g)
  | mu_impl_ok :
      forall f g : mu_form,
      mu_form_ap_ok vf f ->
      mu_form_ap_ok vf g -> mu_form_ap_ok vf (mu_impl f g)
  | mu_iff_ok :
      forall f g : mu_form,
      mu_form_ap_ok vf f ->
      mu_form_ap_ok vf g -> mu_form_ap_ok vf (mu_iff f g)
  | mu_all_ok :
      forall (t : ad) (f : mu_form),
      mu_form_ap_ok vf f -> mu_form_ap_ok vf (mu_all t f)
  | mu_ex_ok :
      forall (t : ad) (f : mu_form),
      mu_form_ap_ok vf f -> mu_form_ap_ok vf (mu_ex t f)
  | mu_mu_ok :
      forall (P : ad) (f : mu_form),
      mu_form_ap_ok vf f -> mu_form_ap_ok vf (mu_mu P f).(* (mu_form_ap_ok vf f) means that for all atomic propositions p occurring in f
   (vf ap)=true *)
Inductive mu_form_ap_ok (vf : ad -> bool) : mu_form -> Prop :=
  | mu_0_ok : mu_form_ap_ok vf mu_0
  | mu_1_ok : mu_form_ap_ok vf mu_1
  | mu_ap_ok : forall p : ad, vf p = true -> mu_form_ap_ok vf (mu_ap p)
  | mu_rel_var_ok : forall P : ad, mu_form_ap_ok vf (mu_rel_var P)
  | mu_neg_ok :
      forall f : mu_form, mu_form_ap_ok vf f -> mu_form_ap_ok vf (mu_neg f)
  | mu_and_ok :
      forall f g : mu_form,
      mu_form_ap_ok vf f ->
      mu_form_ap_ok vf g -> mu_form_ap_ok vf (mu_and f g)
  | mu_or_ok :
      forall f g : mu_form,
      mu_form_ap_ok vf f ->
      mu_form_ap_ok vf g -> mu_form_ap_ok vf (mu_or f g)
  | mu_impl_ok :
      forall f g : mu_form,
      mu_form_ap_ok vf f ->
      mu_form_ap_ok vf g -> mu_form_ap_ok vf (mu_impl f g)
  | mu_iff_ok :
      forall f g : mu_form,
      mu_form_ap_ok vf f ->
      mu_form_ap_ok vf g -> mu_form_ap_ok vf (mu_iff f g)
  | mu_all_ok :
      forall (t : ad) (f : mu_form),
      mu_form_ap_ok vf f -> mu_form_ap_ok vf (mu_all t f)
  | mu_ex_ok :
      forall (t : ad) (f : mu_form),
      mu_form_ap_ok vf f -> mu_form_ap_ok vf (mu_ex t f)
  | mu_mu_ok :
      forall (P : ad) (f : mu_form),
      mu_form_ap_ok vf f -> mu_form_ap_ok vf (mu_mu P f).(* (mu_form_ap_ok vf f) means that for all atomic propositions p occurring in f
   (vf ap)=true *)
Inductive mu_form_ap_ok (vf : ad -> bool) : mu_form -> Prop :=
  | mu_0_ok : mu_form_ap_ok vf mu_0
  | mu_1_ok : mu_form_ap_ok vf mu_1
  | mu_ap_ok : forall p : ad, vf p = true -> mu_form_ap_ok vf (mu_ap p)
  | mu_rel_var_ok : forall P : ad, mu_form_ap_ok vf (mu_rel_var P)
  | mu_neg_ok :
      forall f : mu_form, mu_form_ap_ok vf f -> mu_form_ap_ok vf (mu_neg f)
  | mu_and_ok :
      forall f g : mu_form,
      mu_form_ap_ok vf f ->
      mu_form_ap_ok vf g -> mu_form_ap_ok vf (mu_and f g)
  | mu_or_ok :
      forall f g : mu_form,
      mu_form_ap_ok vf f ->
      mu_form_ap_ok vf g -> mu_form_ap_ok vf (mu_or f g)
  | mu_impl_ok :
      forall f g : mu_form,
      mu_form_ap_ok vf f ->
      mu_form_ap_ok vf g -> mu_form_ap_ok vf (mu_impl f g)
  | mu_iff_ok :
      forall f g : mu_form,
      mu_form_ap_ok vf f ->
      mu_form_ap_ok vf g -> mu_form_ap_ok vf (mu_iff f g)
  | mu_all_ok :
      forall (t : ad) (f : mu_form),
      mu_form_ap_ok vf f -> mu_form_ap_ok vf (mu_all t f)
  | mu_ex_ok :
      forall (t : ad) (f : mu_form),
      mu_form_ap_ok vf f -> mu_form_ap_ok vf (mu_ex t f)
  | mu_mu_ok :
      forall (P : ad) (f : mu_form),
      mu_form_ap_ok vf f -> mu_form_ap_ok vf (mu_mu P f).

(* Specifications: *)
Lemma mu_ap_ok_inv : forall (vf : ad -> bool) (p : ad), mu_form_ap_ok vf (mu_ap p) -> vf p = true.