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 Object Run() {
final Character ignorePattern_1 = idC('b');
//@ assert (Utils.is_char(ignorePattern_1) && inv_Entry_C(ignorePattern_1));
final Character ignorePattern_2 = idC('a');
//@ assert (Utils.is_char(ignorePattern_2) && inv_Entry_C(ignorePattern_2));
final Object ignorePattern_3 = idA(null);
//@ assert ((ignorePattern_3 == null) || ((ignorePattern_3 == null) || (Utils.is_real(ignorePattern_3) && inv_Entry_B(ignorePattern_3)) || (Utils.is_char(ignorePattern_3) && inv_Entry_C(ignorePattern_3))) && inv_Entry_A(ignorePattern_3));
final Object ignorePattern_4 = idA(2.1);
//@ assert ((ignorePattern_4 == null) || ((ignorePattern_4 == null) || (Utils.is_real(ignorePattern_4) && inv_Entry_B(ignorePattern_4)) || (Utils.is_char(ignorePattern_4) && inv_Entry_C(ignorePattern_4))) && inv_Entry_A(ignorePattern_4));
final Object ignorePattern_5 = constFunc();
//@ assert ((ignorePattern_5 == null) || ((ignorePattern_5 == null) || (Utils.is_real(ignorePattern_5) && inv_Entry_B(ignorePattern_5)) || (Utils.is_char(ignorePattern_5) && inv_Entry_C(ignorePattern_5))) && inv_Entry_A(ignorePattern_5));
{
IO.println("Breaking named type invariant for return value");
{
final Object ignorePattern_6 = idA('b');
//@ assert ((ignorePattern_6 == null) || ((ignorePattern_6 == null) || (Utils.is_real(ignorePattern_6) && inv_Entry_B(ignorePattern_6)) || (Utils.is_char(ignorePattern_6) && inv_Entry_C(ignorePattern_6))) && inv_Entry_A(ignorePattern_6));
/* skip */
}
return 0L;
}
}
/*@ pure @*/
public static Character idC(final Character c) {
//@ assert (Utils.is_char(c) && inv_Entry_C(c));
Character ret_1 = c;
//@ assert (Utils.is_char(ret_1) && inv_Entry_C(ret_1));
return ret_1;
}
/*@ pure @*/
public static Object idA(final Object a) {
//@ assert ((a == null) || ((a == null) || (Utils.is_real(a) && inv_Entry_B(a)) || (Utils.is_char(a) && inv_Entry_C(a))) && inv_Entry_A(a));
Object ret_2 = a;
//@ assert ((ret_2 == null) || ((ret_2 == null) || (Utils.is_real(ret_2) && inv_Entry_B(ret_2)) || (Utils.is_char(ret_2) && inv_Entry_C(ret_2))) && inv_Entry_A(ret_2));
return ret_2;
}
/*@ pure @*/
public static Object constFunc() {
Object ret_3 = 'a';
//@ assert ((ret_3 == null) || ((ret_3 == null) || (Utils.is_real(ret_3) && inv_Entry_B(ret_3)) || (Utils.is_char(ret_3) && inv_Entry_C(ret_3))) && inv_Entry_A(ret_3));
return ret_3;
}
public String toString() {
return "Entry{}";
}
/*@ pure @*/
/*@ helper @*/
public static Boolean inv_Entry_A(final Object check_c) {
Object c = ((Object) check_c);
Boolean orResult_1 = false;
if (!(Utils.is_char(c))) {
orResult_1 = true;
} else {
orResult_1 = Utils.equals(c, 'a');
}
return orResult_1;
}
/*@ pure @*/
/*@ helper @*/
public static Boolean inv_Entry_B(final Object check_elem) {
return true;
}
/*@ pure @*/
/*@ helper @*/
public static Boolean inv_Entry_C(final Object check_c) {
Character c = ((Character) check_c);
Boolean orResult_2 = false;
if (Utils.equals(c, 'a')) {
orResult_2 = true;
} else {
orResult_2 = Utils.equals(c, 'b');
}
return orResult_2;
}
}