package project; import java.util.*; import org.overture.codegen.runtime.*; import org.overture.codegen.vdm2jml.runtime.*; @SuppressWarnings("all") //@ nullable_by_default final public class Entry { /*@ public ghost static boolean invChecksOn = true; @*/ private Entry() {} public static void typeUseOk() { final Number ignorePattern_1 = 1L; //@ assert Utils.is_nat1(ignorePattern_1); final Object even = 2L; //@ assert (((Utils.is_nat(even) && inv_Entry_Even(even)) || (Utils.is_real(even) && inv_Entry_Large(even))) && inv_Entry_No(even)); final Number ignorePattern_2 = 3L; //@ assert Utils.is_nat1(ignorePattern_2); /* skip */ } public static void typeUseNotOk() { IO.println("Before breaking named type invariant"); { Object notLarge = 999L; //@ assert (((Utils.is_nat(notLarge) && inv_Entry_Even(notLarge)) || (Utils.is_real(notLarge) && inv_Entry_Large(notLarge))) && inv_Entry_No(notLarge)); IO.println("After breaking named type invariant"); /* skip */ } } public static Object Run() { typeUseOk(); typeUseNotOk(); return 0L; } public String toString() { return "Entry{}"; } /*@ pure @*/ /*@ helper @*/ public static Boolean inv_Entry_No(final Object check_elem) { return true; } /*@ pure @*/ /*@ helper @*/ public static Boolean inv_Entry_Even(final Object check_ev) { Number ev = ((Number) check_ev); return Utils.equals(Utils.mod(ev.longValue(), 2L), 0L); } /*@ pure @*/ /*@ helper @*/ public static Boolean inv_Entry_Large(final Object check_la) { Number la = ((Number) check_la); return la.doubleValue() > 1000L; } }