End Kripke.
Arguments ksat {_} _ _ {_} _ _ _, {_ _} _ {_} _ _ _.
(* Notation "rho '⊫(' u ')'  A" := ( forall phi, phi el A -> ksat u rho phi) (at level 20). *)
Notation "rho '⊩(' u , M , eta ')' phi" := (@ksat _ eta M _ u rho phi) (at level 20).
(** ** Connection to Tarski Semantics *)
Instance interp_kripke {domain eta} (I : interp domain eta) : kmodel  eta :=
{| nodes := unit ; reachable u v := True |}.
Definition kvalid b (phi : form b) :=
forall domain eta (M : @kmodel domain eta) u rho, rho ⊩(u,M,eta) phi.
Definition ksatis b (phi : form b) :=
exists domain eta (M : @kmodel domain eta) u rho, ksat eta M u rho phi.

(* Specifications: *)
Lemma kvalid_valid b (phi : form b) :
kvalid phi -> valid phi.
Lemma ksatis_satis b (phi : form b) :
satis phi -> ksatis phi.