fact: Definition EvalObjectInvariant (o : Object) (st : State.t) : Prop := if METHOD.isHelper m then True else forall cn um t, Heap.typeof st@h o = Some (Heap.ObjectObject cn um) -> LookupTypedef p cn = Some t -> ( forall inv , DefinedInvariant t inv -> EvalPredicate (INVARIANT.pred inv) st[fr := st@fr[this := o]] ).
imports: Coq(List) Coq(ListSet) Coq(FSetInterface) Coq(Bool) Coq(ZArith) Coq(Relation_Operators) JML(ListHelpers)