fact: Definition fieldNonNullInvariant (entityName:ClassName) (f:Field) : option INVARIANT.t := let target := if FIELD.isStatic f then None else Some (this%jml) in if FIELD.isNullable f || negb (isReferenceType (FIELDSIGNATURE.type (FIELD.signature f))) then None else let fExpr := field (entityName, (FIELD.signature f)) target in Some (INVARIANT.Build_t (fExpr != null)%jml (FIELD.visibility f) (FIELD.isStatic f) false).
imports: JML(Prelude) Coq(ZArith) Coq(Bool) Coq(List) JML(TaggedList) JML(ListHelpers) JML(ListFunctions) JML(OptionHelpers) JML(JMLProgramPlusImpl) JML(JMLFull2Basic) JML(JMLExpressionNotations)