(*******   kripke_trees    ****************************************)



Definition atoms := AVL unit.Definition ANil := AVL_NIL unit.Definition kripke_tree := Tree atoms.Definition Kripke_Forest := Forest atoms.Definition forces0_t (A : atoms) (i : Int) := LOOKUP unit i A tt.Definition Is_Monotone_kripke_tree := Is_Monotone_Tree atoms Int forces0_t.Definition Is_Monotone_Kripke_Forest :=
  Is_Monotone_Forest atoms Int forces0_t.Definition Suc (k0 k1 : kripke_tree) := Successor atoms k0 k1.Definition Atms (k : kripke_tree) := root atoms k.Definition Succs (k0 : kripke_tree) := successors atoms k0.

(* Specifications: *)
Lemma kripke_tree_kripke_model : forall k : kripke_tree, Is_Monotone_kripke_tree k -> Kripke_Model kripke_tree (fun k0 : kripke_tree => Suc k0 k) (fun k0 k1 : kripke_tree => Suc k1 k0) (fun (k0 : kripke_tree) (i : Int) => forces0_t (Atms k0) i).
Lemma kripke_tree_succ : forall K : kripke_tree, Is_Monotone_kripke_tree K -> forall k : kripke_tree, Suc k K -> Is_Monotone_kripke_tree k.