package nova;

import nova.Store.Clause;
import nova.Store.Place;
import nova.Store.Skeleton;
import nova.Store.Cache;
import nova.Store.Goal;
import nova.Machine.Frozen;

import java.math.BigInteger;

import static nova.Store.UNDEF_OBJ;
import static nova.Store.make_defined;
import static nova.Store.add;

import static nova.Machine.run;

/**
 * Warranty & Liability
 * To the extent permitted by applicable law and unless explicitly
 * otherwise agreed upon, XLOG Technologies AG makes no warranties
 * regarding the provided information. XLOG Technologies AG assumes
 * no liability that any problems might be solved with the information
 * provided by XLOG Technologies AG.
 * 
 * Rights & License
 * All industrial property rights regarding the information - copyright
 * and patent rights in particular - are the sole property of XLOG
 * Technologies AG. If the company was not the originator of some
 * excerpts, XLOG Technologies AG has at least obtained the right to
 * reproduce, change and translate the information.
 * 
 * Reproduction is restricted to the whole unaltered document. Reproduction
 * of the information is only allowed for non-commercial uses. Selling,
 * giving away or letting of the execution of the library is prohibited.
 * The library can be distributed as part of your applications and libraries
 * for execution provided this comment remains unchanged.
 * 
 * Restrictions
 * Only to be distributed with programs that add significant and primary
 * functionality to the library. Not to be distributed with additional
 * software intended to replace any components of the library.
 * 
 * Trademarks
 * Jekejeke is a registered trademark of XLOG Technologies AG.
 */

public final class Bootload {

    public static void boot9() {
        add(new Clause(1, "sys_trans_horn", new Object[]{new Place(0), UNDEF_OBJ, UNDEF_OBJ}, new Object[]{new Skeleton(new Cache("var"), new Object[]{new Place(0)}), new Skeleton(new Cache("throw"), new Object[]{new Skeleton("error", new Object[]{"instantiation_error", UNDEF_OBJ})})}, -1));
        add(new Clause(5, "sys_trans_horn", new Object[]{new Skeleton(":-", new Object[]{new Place(1)}), new Skeleton("tr_goal", new Object[]{new Place(2), new Place(3)}), new Place(4)}, new Object[]{new Skeleton(new Cache("$CUT"), new Object[]{new Place(0)}), new Skeleton(new Cache("sys_trans_body"), new Object[]{new Place(1), "nothing", new Place(2), new Place(4), new Place(3), "[]"})}, 0));
        add(new Clause(6, "sys_trans_horn", new Object[]{new Skeleton(":-", new Object[]{new Place(1), new Place(2)}), new Skeleton("tr_clause", new Object[]{new Place(3), new Place(1), new Place(4)}), new Place(5)}, new Object[]{new Skeleton(new Cache("$CUT"), new Object[]{new Place(0)}), new Skeleton(new Cache("must_be"), new Object[]{"callable", new Place(1)}), new Skeleton(new Cache("sys_trans_body"), new Object[]{new Place(2), "nothing", new Place(3), new Place(5), new Place(4), "[]"})}, 0));
        add(new Clause(1, "sys_trans_horn", new Object[]{new Place(0), new Skeleton("tr_clause", new Object[]{"nothing", new Place(0), "[]"}), UNDEF_OBJ}, new Object[]{new Skeleton(new Cache("must_be"), new Object[]{"callable", new Place(0)})}, -1));
        add(new Clause(5, "sys_trans_body", new Object[]{new Place(1), new Place(2), new Place(2), UNDEF_OBJ, new Place(3), new Place(4)}, new Object[]{new Skeleton(new Cache("var"), new Object[]{new Place(1)}), new Skeleton(new Cache("$CUT"), new Object[]{new Place(0)}), new Skeleton(new Cache("="), new Object[]{new Place(3), new Skeleton(".", new Object[]{new Skeleton("call", new Object[]{new Place(1)}), new Place(4)})})}, 0));
        add(new Clause(4, "sys_trans_body", new Object[]{"true", new Place(1), new Place(1), UNDEF_OBJ, new Place(2), new Place(3)}, new Object[]{new Skeleton(new Cache("$CUT"), new Object[]{new Place(0)}), new Skeleton(new Cache("="), new Object[]{new Place(2), new Place(3)})}, 0));
        add(new Clause(10, "sys_trans_body", new Object[]{new Skeleton(",", new Object[]{new Place(1), new Place(2)}), new Place(3), new Place(4), new Place(5), new Place(6), new Place(7)}, new Object[]{new Skeleton(new Cache("$CUT"), new Object[]{new Place(0)}), new Skeleton(new Cache("sys_trans_body"), new Object[]{new Place(1), new Place(3), new Place(8), new Place(5), new Place(6), new Place(9)}), new Skeleton(new Cache("sys_trans_body"), new Object[]{new Place(2), new Place(8), new Place(4), new Place(5), new Place(9), new Place(7)})}, 0));
        add(new Clause(5, "sys_trans_body", new Object[]{"!", new Place(1), new Skeleton("just", new Object[]{new Place(2)}), UNDEF_OBJ, new Place(3), new Place(4)}, new Object[]{new Skeleton(new Cache("$CUT"), new Object[]{new Place(0)}), new Skeleton(new Cache("sys_trans_cut"), new Object[]{new Place(1), new Place(2)}), new Skeleton(new Cache("="), new Object[]{new Place(3), new Skeleton(".", new Object[]{new Skeleton("$CUT", new Object[]{new Place(2)}), new Place(4)})})}, 0));
        add(new Clause(9, "sys_trans_body", new Object[]{new Skeleton(";", new Object[]{new Place(1), new Place(2)}), new Place(3), new Place(4), new Place(5), new Place(6), new Place(7)}, new Object[]{new Skeleton(new Cache("$CUT"), new Object[]{new Place(0)}), new Skeleton(new Cache("sys_trans_disj"), new Object[]{new Skeleton(";", new Object[]{new Place(1), new Place(2)}), 0, new Place(3), new Place(4), new Place(5), new Place(8)}), new Skeleton(new Cache("="), new Object[]{new Place(6), new Skeleton(".", new Object[]{new Skeleton("$ALT", new Object[]{new Place(8)}), new Place(7)})})}, 0));
        add(new Clause(9, "sys_trans_body", new Object[]{new Skeleton("->", new Object[]{new Place(1), new Place(2)}), new Place(3), new Place(4), new Place(5), new Place(6), new Place(7)}, new Object[]{new Skeleton(new Cache("$CUT"), new Object[]{new Place(0)}), new Skeleton(new Cache("sys_trans_disj"), new Object[]{new Skeleton("->", new Object[]{new Place(1), new Place(2)}), 0, new Place(3), new Place(4), new Place(5), new Place(8)}), new Skeleton(new Cache("="), new Object[]{new Place(6), new Skeleton(".", new Object[]{new Skeleton("$ALT", new Object[]{new Place(8)}), new Place(7)})})}, 0));
        add(new Clause(6, "sys_trans_body", new Object[]{new Skeleton("\\+", new Object[]{new Place(1)}), new Place(2), new Place(3), 1, new Place(4), new Place(5)}, new Object[]{new Skeleton(new Cache("sys_safe_meta"), new Object[]{new Place(1)}), new Skeleton(new Cache("$CUT"), new Object[]{new Place(0)}), new Skeleton(new Cache("sys_trans_body"), new Object[]{new Skeleton(";", new Object[]{new Skeleton("->", new Object[]{new Place(1), "fail"}), "true"}), new Place(2), new Place(3), 1, new Place(4), new Place(5)})}, 0));
        add(new Clause(6, "sys_trans_body", new Object[]{new Skeleton("once", new Object[]{new Place(1)}), new Place(2), new Place(3), 1, new Place(4), new Place(5)}, new Object[]{new Skeleton(new Cache("sys_safe_meta"), new Object[]{new Place(1)}), new Skeleton(new Cache("$CUT"), new Object[]{new Place(0)}), new Skeleton(new Cache("sys_trans_body"), new Object[]{new Skeleton("->", new Object[]{new Place(1), "true"}), new Place(2), new Place(3), 1, new Place(4), new Place(5)})}, 0));
        add(new Clause(4, "sys_trans_body", new Object[]{new Place(0), new Place(1), new Place(1), UNDEF_OBJ, new Place(2), new Place(3)}, new Object[]{new Skeleton(new Cache("must_be"), new Object[]{"callable", new Place(0)}), new Skeleton(new Cache("="), new Object[]{new Place(2), new Skeleton(".", new Object[]{new Place(0), new Place(3)})})}, -1));
        add(new Clause(1, "sys_trans_cut", new Object[]{"nothing", UNDEF_OBJ}, new Object[]{new Skeleton(new Cache("$CUT"), new Object[]{new Place(0)})}, 0));
        add(new Clause(1, "sys_trans_cut", new Object[]{new Skeleton("just", new Object[]{new Place(0)}), new Place(0)}, new Object[]{}, -1));
        add(new Clause(6, "sys_trans_disj", new Object[]{new Place(1), UNDEF_OBJ, new Place(2), new Place(3), new Place(4), new Skeleton(".", new Object[]{new Place(5), "[]"})}, new Object[]{new Skeleton(new Cache("var"), new Object[]{new Place(1)}), new Skeleton(new Cache("$CUT"), new Object[]{new Place(0)}), new Skeleton(new Cache("sys_trans_alter"), new Object[]{new Place(1), new Place(2), new Place(3), new Place(5), new Place(4), UNDEF_OBJ})}, 0));
        add(new Clause(10, "sys_trans_disj", new Object[]{new Skeleton(";", new Object[]{new Place(1), new Place(2)}), UNDEF_OBJ, new Place(3), new Place(4), new Place(5), new Skeleton(".", new Object[]{new Place(6), new Place(7)})}, new Object[]{new Skeleton(new Cache("$CUT"), new Object[]{new Place(0)}), new Skeleton(new Cache("sys_trans_alter"), new Object[]{new Place(1), new Place(3), new Place(8), new Place(6), new Place(5), new Place(9)}), new Skeleton(new Cache("sys_trans_disj"), new Object[]{new Place(2), new Place(9), new Place(8), new Place(4), new Place(5), new Place(7)})}, 0));
        add(new Clause(2, "sys_trans_disj", new Object[]{"fail", 1, new Place(1), new Place(1), UNDEF_OBJ, "[]"}, new Object[]{new Skeleton(new Cache("$CUT"), new Object[]{new Place(0)})}, 0));
        add(new Clause(5, "sys_trans_disj", new Object[]{new Place(0), UNDEF_OBJ, new Place(1), new Place(2), new Place(3), new Skeleton(".", new Object[]{new Place(4), "[]"})}, new Object[]{new Skeleton(new Cache("sys_trans_alter"), new Object[]{new Place(0), new Place(1), new Place(2), new Place(4), new Place(3), UNDEF_OBJ})}, -1));
        add(new Clause(6, "sys_trans_alter", new Object[]{new Place(1), new Place(2), new Place(3), new Skeleton("$SEQ", new Object[]{"nothing", new Place(4)}), new Place(5), 0}, new Object[]{new Skeleton(new Cache("var"), new Object[]{new Place(1)}), new Skeleton(new Cache("$CUT"), new Object[]{new Place(0)}), new Skeleton(new Cache("sys_trans_body"), new Object[]{new Place(1), new Place(2), new Place(3), new Place(5), new Place(4), "[]"})}, 0));
        add(new Clause(11, "sys_trans_alter", new Object[]{new Skeleton("->", new Object[]{new Place(1), new Place(2)}), new Place(3), new Place(4), new Skeleton("$SEQ", new Object[]{new Skeleton("just", new Object[]{new Place(5)}), new Place(6)}), new Place(7), 1}, new Object[]{new Skeleton(new Cache("$CUT"), new Object[]{new Place(0)}), new Skeleton(new Cache("sys_trans_body"), new Object[]{new Place(1), "nothing", new Place(8), new Place(7), new Place(9), new Skeleton(".", new Object[]{new Skeleton("$CUT", new Object[]{new Place(5)}), new Place(10)})}), new Skeleton(new Cache("sys_trans_body"), new Object[]{new Place(2), new Place(3), new Place(4), new Place(7), new Place(10), "[]"}), new Skeleton(new Cache("sys_trans_mark"), new Object[]{new Place(8), new Place(6), new Place(9)})}, 0));
        add(new Clause(5, "sys_trans_alter", new Object[]{new Place(0), new Place(1), new Place(2), new Skeleton("$SEQ", new Object[]{"nothing", new Place(3)}), new Place(4), 0}, new Object[]{new Skeleton(new Cache("sys_trans_body"), new Object[]{new Place(0), new Place(1), new Place(2), new Place(4), new Place(3), "[]"})}, -1));
        add(new Clause(3, "sys_trans_mark", new Object[]{new Skeleton("just", new Object[]{new Place(1)}), new Skeleton(".", new Object[]{new Skeleton("$MARK", new Object[]{new Place(1)}), new Place(2)}), new Place(2)}, new Object[]{new Skeleton(new Cache("$CUT"), new Object[]{new Place(0)})}, 0));
        add(new Clause(1, "sys_trans_mark", new Object[]{"nothing", new Place(0), new Place(0)}, new Object[]{}, -1));
        add(new Clause(2, "sys_safe_meta", new Object[]{new Place(1)}, new Object[]{new Skeleton(new Cache("var"), new Object[]{new Place(1)}), new Skeleton(new Cache("$CUT"), new Object[]{new Place(0)}), new Cache("fail")}, 0));
        add(new Clause(3, "sys_safe_meta", new Object[]{new Skeleton(",", new Object[]{new Place(1), new Place(2)})}, new Object[]{new Skeleton(new Cache("$CUT"), new Object[]{new Place(0)}), new Skeleton(new Cache("sys_safe_meta"), new Object[]{new Place(1)}), new Skeleton(new Cache("sys_safe_meta"), new Object[]{new Place(2)})}, 0));
        add(new Clause(3, "sys_safe_meta", new Object[]{new Skeleton(";", new Object[]{new Place(1), new Place(2)})}, new Object[]{new Skeleton(new Cache("$CUT"), new Object[]{new Place(0)}), new Skeleton(new Cache("sys_safe_meta"), new Object[]{new Place(1)}), new Skeleton(new Cache("sys_safe_meta"), new Object[]{new Place(2)})}, 0));
        add(new Clause(3, "sys_safe_meta", new Object[]{new Skeleton("->", new Object[]{new Place(1), new Place(2)})}, new Object[]{new Skeleton(new Cache("$CUT"), new Object[]{new Place(0)}), new Skeleton(new Cache("sys_safe_meta"), new Object[]{new Place(1)}), new Skeleton(new Cache("sys_safe_meta"), new Object[]{new Place(2)})}, 0));
        add(new Clause(1, "sys_safe_meta", new Object[]{new Place(0)}, new Object[]{new Skeleton(new Cache("callable"), new Object[]{new Place(0)})}, -1));
        add(new Clause(0, "sys_untrans_body", new Object[]{"[]", UNDEF_OBJ, UNDEF_OBJ, "true"}, new Object[]{}, -1));
        add(new Clause(6, "sys_untrans_body", new Object[]{new Skeleton(".", new Object[]{new Place(0), new Place(1)}), new Place(2), new Place(3), new Place(4)}, new Object[]{new Skeleton(new Cache("sys_untrans_goal"), new Object[]{new Place(0), new Place(2), new Place(3), new Place(5)}), new Skeleton(new Cache("sys_untrans_rest"), new Object[]{new Place(1), new Place(5), new Place(2), new Place(3), new Place(4)})}, -1));
        add(new Clause(5, "sys_untrans_rest", new Object[]{new Place(1), new Skeleton(";", new Object[]{new Skeleton("->", new Object[]{new Place(2), "fail"}), "true"}), new Place(3), 1, new Place(4)}, new Object[]{new Skeleton(new Cache("$CUT"), new Object[]{new Place(0)}), new Skeleton(new Cache("sys_untrans_rest"), new Object[]{new Place(1), new Skeleton("\\+", new Object[]{new Place(2)}), new Place(3), 1, new Place(4)})}, 0));
        add(new Clause(5, "sys_untrans_rest", new Object[]{new Place(1), new Skeleton("->", new Object[]{new Place(2), "true"}), new Place(3), 1, new Place(4)}, new Object[]{new Skeleton(new Cache("$CUT"), new Object[]{new Place(0)}), new Skeleton(new Cache("sys_untrans_rest"), new Object[]{new Place(1), new Skeleton("once", new Object[]{new Place(2)}), new Place(3), 1, new Place(4)})}, 0));
        add(new Clause(1, "sys_untrans_rest", new Object[]{"[]", new Place(0), UNDEF_OBJ, UNDEF_OBJ, new Place(0)}, new Object[]{}, -1));
        add(new Clause(7, "sys_untrans_rest", new Object[]{new Skeleton(".", new Object[]{new Place(0), new Place(1)}), new Place(2), new Place(3), new Place(4), new Skeleton(",", new Object[]{new Place(2), new Place(5)})}, new Object[]{new Skeleton(new Cache("sys_untrans_goal"), new Object[]{new Place(0), new Place(3), new Place(4), new Place(6)}), new Skeleton(new Cache("sys_untrans_rest"), new Object[]{new Place(1), new Place(6), new Place(3), new Place(4), new Place(5)})}, -1));
        add(new Clause(3, "sys_untrans_goal", new Object[]{new Skeleton("$CUT", new Object[]{new Place(1)}), new Skeleton("just", new Object[]{new Place(2)}), UNDEF_OBJ, "!"}, new Object[]{new Skeleton(new Cache("=="), new Object[]{new Place(1), new Place(2)}), new Skeleton(new Cache("$CUT"), new Object[]{new Place(0)})}, 0));
        add(new Clause(5, "sys_untrans_goal", new Object[]{new Skeleton("$ALT", new Object[]{new Place(1)}), new Place(2), new Place(3), new Place(4)}, new Object[]{new Skeleton(new Cache("$CUT"), new Object[]{new Place(0)}), new Skeleton(new Cache("sys_untrans_disj"), new Object[]{new Place(1), new Place(2), new Place(3), new Place(4)})}, 0));
        add(new Clause(1, "sys_untrans_goal", new Object[]{new Place(0), UNDEF_OBJ, UNDEF_OBJ, new Place(0)}, new Object[]{}, -1));
        add(new Clause(0, "sys_untrans_disj", new Object[]{"[]", UNDEF_OBJ, UNDEF_OBJ, "fail"}, new Object[]{}, -1));
        add(new Clause(5, "sys_untrans_disj", new Object[]{new Skeleton(".", new Object[]{new Place(0), new Place(1)}), new Place(2), new Place(3), new Place(4)}, new Object[]{new Skeleton(new Cache("sys_untrans_more"), new Object[]{new Place(1), new Place(0), new Place(2), new Place(3), new Place(4)})}, -1));
        add(new Clause(5, "sys_untrans_more", new Object[]{"[]", new Skeleton("$SEQ", new Object[]{new Place(0), new Place(1)}), new Place(2), new Place(3), new Place(4)}, new Object[]{new Skeleton(new Cache("sys_untrans_alter"), new Object[]{new Place(0), new Place(1), new Place(2), new Place(3), new Place(4)})}, -1));
        add(new Clause(8, "sys_untrans_more", new Object[]{new Skeleton(".", new Object[]{new Place(0), new Place(1)}), new Skeleton("$SEQ", new Object[]{new Place(2), new Place(3)}), new Place(4), new Place(5), new Skeleton(";", new Object[]{new Place(6), new Place(7)})}, new Object[]{new Skeleton(new Cache("sys_untrans_alter"), new Object[]{new Place(2), new Place(3), new Place(4), new Place(5), new Place(6)}), new Skeleton(new Cache("sys_untrans_more"), new Object[]{new Place(1), new Place(0), new Place(4), new Place(5), new Place(7)})}, -1));
        add(new Clause(5, "sys_untrans_alter", new Object[]{"nothing", new Place(0), new Place(1), new Place(2), new Place(3)}, new Object[]{new Skeleton(new Cache("sys_untrans_body"), new Object[]{new Place(0), new Place(1), new Place(2), new Place(4)}), new Skeleton(new Cache("sys_untrans_ambiguity"), new Object[]{new Place(4), new Place(3)})}, -1));
        add(new Clause(10, "sys_untrans_alter", new Object[]{new Skeleton("just", new Object[]{new Place(0)}), new Place(1), new Place(2), new Place(3), new Skeleton("->", new Object[]{new Place(4), new Place(5)})}, new Object[]{new Skeleton(new Cache("sys_untrans_split"), new Object[]{new Place(1), new Place(0), new Place(6), new Place(7)}), new Skeleton(new Cache("sys_trans_mark"), new Object[]{new Place(8), new Place(6), new Place(9)}), new Skeleton(new Cache("sys_untrans_body"), new Object[]{new Place(9), new Place(8), new Place(3), new Place(4)}), new Skeleton(new Cache("sys_untrans_body"), new Object[]{new Place(7), new Place(2), new Place(3), new Place(5)})}, -1));
        add(new Clause(4, "sys_untrans_split", new Object[]{new Skeleton(".", new Object[]{new Skeleton("$CUT", new Object[]{new Place(1)}), new Place(2)}), new Place(3), "[]", new Place(2)}, new Object[]{new Skeleton(new Cache("=="), new Object[]{new Place(1), new Place(3)}), new Skeleton(new Cache("$CUT"), new Object[]{new Place(0)})}, 0));
        add(new Clause(5, "sys_untrans_split", new Object[]{new Skeleton(".", new Object[]{new Place(0), new Place(1)}), new Place(2), new Skeleton(".", new Object[]{new Place(0), new Place(3)}), new Place(4)}, new Object[]{new Skeleton(new Cache("sys_untrans_split"), new Object[]{new Place(1), new Place(2), new Place(3), new Place(4)})}, -1));
        add(new Clause(3, "sys_untrans_ambiguity", new Object[]{new Skeleton("->", new Object[]{new Place(1), new Place(2)}), new Skeleton(";", new Object[]{new Skeleton("->", new Object[]{new Place(1), new Place(2)}), "fail"})}, new Object[]{new Skeleton(new Cache("$CUT"), new Object[]{new Place(0)})}, 0));
        add(new Clause(1, "sys_untrans_ambiguity", new Object[]{new Place(0), new Place(0)}, new Object[]{}, -1));
    }

    public static void boot11() {
        add(new Clause(2, "sys_encode_horn", new Object[]{new Place(1), new Place(1), 0}, new Object[]{new Skeleton(new Cache("$CUT"), new Object[]{new Place(0)})}, 0));
        add(new Clause(3, "sys_encode_horn", new Object[]{new Skeleton("tr_goal", new Object[]{new Place(0), new Place(1)}), new Skeleton("tr_goal", new Object[]{new Place(0), new Place(2)}), UNDEF_OBJ}, new Object[]{new Skeleton(new Cache("sys_encode_body"), new Object[]{new Place(1), new Place(2), new Place(0)})}, -1));
        add(new Clause(4, "sys_encode_horn", new Object[]{new Skeleton("tr_clause", new Object[]{new Place(0), new Place(1), new Place(2)}), new Skeleton("tr_clause", new Object[]{new Place(0), new Place(1), new Place(3)}), UNDEF_OBJ}, new Object[]{new Skeleton(new Cache("sys_encode_body"), new Object[]{new Place(2), new Place(3), new Skeleton("-", new Object[]{new Place(0), new Place(1)})})}, -1));
        add(new Clause(0, "sys_meta_args", new Object[]{"is", 2, new Frozen(".", new Object[]{"t", new Frozen(".", new Object[]{"e", "[]"})})}, new Object[]{}, -1));
        add(new Clause(0, "sys_meta_args", new Object[]{"=:=", 2, new Frozen(".", new Object[]{"e", new Frozen(".", new Object[]{"e", "[]"})})}, new Object[]{}, -1));
        add(new Clause(0, "sys_meta_args", new Object[]{"=\\=", 2, new Frozen(".", new Object[]{"e", new Frozen(".", new Object[]{"e", "[]"})})}, new Object[]{}, -1));
        add(new Clause(0, "sys_meta_args", new Object[]{"<", 2, new Frozen(".", new Object[]{"e", new Frozen(".", new Object[]{"e", "[]"})})}, new Object[]{}, -1));
        add(new Clause(0, "sys_meta_args", new Object[]{"=<", 2, new Frozen(".", new Object[]{"e", new Frozen(".", new Object[]{"e", "[]"})})}, new Object[]{}, -1));
        add(new Clause(0, "sys_meta_args", new Object[]{">", 2, new Frozen(".", new Object[]{"e", new Frozen(".", new Object[]{"e", "[]"})})}, new Object[]{}, -1));
        add(new Clause(0, "sys_meta_args", new Object[]{">=", 2, new Frozen(".", new Object[]{"e", new Frozen(".", new Object[]{"e", "[]"})})}, new Object[]{}, -1));
        add(new Clause(0, "sys_meta_args", new Object[]{"\\+", 1, new Frozen(".", new Object[]{"p", "[]"})}, new Object[]{}, -1));
        add(new Clause(0, "sys_meta_args", new Object[]{"once", 1, new Frozen(".", new Object[]{"p", "[]"})}, new Object[]{}, -1));
        add(new Clause(0, "sys_meta_args", new Object[]{"asserta", 1, new Frozen(".", new Object[]{"c", "[]"})}, new Object[]{}, -1));
        add(new Clause(0, "sys_meta_args", new Object[]{"assertz", 1, new Frozen(".", new Object[]{"c", "[]"})}, new Object[]{}, -1));
        add(new Clause(0, "sys_meta_args", new Object[]{"clause", 2, new Frozen(".", new Object[]{"p", new Frozen(".", new Object[]{"t", "[]"})})}, new Object[]{}, -1));
        add(new Clause(0, "sys_meta_args", new Object[]{"retract", 1, new Frozen(".", new Object[]{"c", "[]"})}, new Object[]{}, -1));
        add(new Clause(0, "sys_meta_args", new Object[]{"retractall", 1, new Frozen(".", new Object[]{"p", "[]"})}, new Object[]{}, -1));
        add(new Clause(0, "sys_encode_body", new Object[]{"[]", "[]", UNDEF_OBJ}, new Object[]{}, -1));
        add(new Clause(5, "sys_encode_body", new Object[]{new Skeleton(".", new Object[]{new Place(0), new Place(1)}), new Skeleton(".", new Object[]{new Place(2), new Place(3)}), new Place(4)}, new Object[]{new Skeleton(new Cache("sys_encode_goal"), new Object[]{new Place(0), new Place(2), new Skeleton("-", new Object[]{new Place(1), new Place(4)})}), new Skeleton(new Cache("sys_encode_body"), new Object[]{new Place(1), new Place(3), new Skeleton(".", new Object[]{new Place(0), new Place(4)})})}, -1));
        add(new Clause(2, "sys_encode_goal", new Object[]{new Place(1), new Place(1), UNDEF_OBJ}, new Object[]{new Skeleton(new Cache("var"), new Object[]{new Place(1)}), new Skeleton(new Cache("$CUT"), new Object[]{new Place(0)})}, 0));
        add(new Clause(7, "sys_encode_goal", new Object[]{new Skeleton("$ALT", new Object[]{new Place(1)}), new Place(2), new Place(3)}, new Object[]{new Skeleton(new Cache("$CUT"), new Object[]{new Place(0)}), new Skeleton(new Cache("vars_intersection"), new Object[]{new Place(1), new Place(3), new Place(4)}), new Skeleton(new Cache("=.."), new Object[]{new Place(5), new Skeleton(".", new Object[]{"", new Place(4)})}), new Skeleton(new Cache("sys_encode_disj"), new Object[]{new Place(1), new Place(5), new Place(6)}), new Skeleton(new Cache("sys_encode_link"), new Object[]{new Place(5), new Place(2), new Place(6)})}, 0));
        add(new Clause(7, "sys_encode_goal", new Object[]{new Place(1), new Place(2), new Place(3)}, new Object[]{new Skeleton(new Cache("functor"), new Object[]{new Place(1), new Place(4), new Place(5)}), new Skeleton(new Cache("sys_meta_args"), new Object[]{new Place(4), new Place(5), new Place(6)}), new Skeleton(new Cache("$CUT"), new Object[]{new Place(0)}), new Skeleton(new Cache("sys_encode_meta"), new Object[]{new Place(6), new Place(1), new Place(2), new Place(3)})}, 0));
        add(new Clause(2, "sys_encode_goal", new Object[]{new Place(0), new Place(1), UNDEF_OBJ}, new Object[]{new Skeleton(new Cache("ir_site_new"), new Object[]{new Place(0), new Place(1)})}, -1));
        add(new Clause(7, "sys_encode_disj", new Object[]{new Skeleton(".", new Object[]{new Skeleton("$SEQ", new Object[]{new Place(0), new Place(1)}), new Place(2)}), new Place(3), new Skeleton(".", new Object[]{new Place(4), new Place(5)})}, new Object[]{new Skeleton(new Cache("sys_encode_horn"), new Object[]{new Skeleton("tr_clause", new Object[]{new Place(0), new Place(3), new Place(1)}), new Place(6), 1}), new Skeleton(new Cache("sys_host_ossify"), new Object[]{new Place(6), new Place(4)}), new Skeleton(new Cache("sys_encode_disj"), new Object[]{new Place(2), new Place(3), new Place(5)})}, -1));
        add(new Clause(0, "sys_encode_disj", new Object[]{"[]", UNDEF_OBJ, "[]"}, new Object[]{}, -1));
        add(new Clause(5, "sys_encode_link", new Object[]{new Place(0), new Place(1), new Place(2)}, new Object[]{new Skeleton(new Cache("=.."), new Object[]{new Place(0), new Skeleton(".", new Object[]{UNDEF_OBJ, new Place(3)})}), new Skeleton(new Cache("ir_link_new"), new Object[]{new Place(2), new Place(4)}), new Skeleton(new Cache("=.."), new Object[]{new Place(1), new Skeleton(".", new Object[]{new Place(4), new Place(3)})})}, -1));
        add(new Clause(8, "sys_encode_meta", new Object[]{new Place(0), new Place(1), new Place(2), new Place(3)}, new Object[]{new Skeleton(new Cache("=.."), new Object[]{new Place(1), new Skeleton(".", new Object[]{new Place(4), new Place(5)})}), new Skeleton(new Cache("sys_encode_params"), new Object[]{new Place(0), new Place(5), new Place(6), new Place(3)}), new Skeleton(new Cache("=.."), new Object[]{new Place(7), new Skeleton(".", new Object[]{new Place(4), new Place(6)})}), new Skeleton(new Cache("ir_site_new"), new Object[]{new Place(7), new Place(2)})}, -1));
        add(new Clause(0, "sys_encode_params", new Object[]{"[]", "[]", "[]", UNDEF_OBJ}, new Object[]{}, -1));
        add(new Clause(7, "sys_encode_params", new Object[]{new Skeleton(".", new Object[]{new Place(0), new Place(1)}), new Skeleton(".", new Object[]{new Place(2), new Place(3)}), new Skeleton(".", new Object[]{new Place(4), new Place(5)}), new Place(6)}, new Object[]{new Skeleton(new Cache("sys_encode_param"), new Object[]{new Place(0), new Place(2), new Place(4), new Place(6)}), new Skeleton(new Cache("sys_encode_params"), new Object[]{new Place(1), new Place(3), new Place(5), new Place(6)})}, -1));
        add(new Clause(1, "sys_encode_param", new Object[]{"t", new Place(0), new Place(0), UNDEF_OBJ}, new Object[]{}, -1));
        add(new Clause(2, "sys_encode_param", new Object[]{"e", new Place(0), new Place(1), UNDEF_OBJ}, new Object[]{new Skeleton(new Cache("sys_encode_expr"), new Object[]{new Place(0), new Place(1)})}, -1));
        add(new Clause(2, "sys_encode_param", new Object[]{"c", new Place(0), new Place(1), UNDEF_OBJ}, new Object[]{new Skeleton(new Cache("sys_encode_clause"), new Object[]{new Place(0), new Place(1)})}, -1));
        add(new Clause(3, "sys_encode_param", new Object[]{"p", new Place(0), new Place(1), new Place(2)}, new Object[]{new Skeleton(new Cache("sys_encode_goal"), new Object[]{new Place(0), new Place(1), new Place(2)})}, -1));
        add(new Clause(7, "sys_encode_expr", new Object[]{new Place(1), new Place(2)}, new Object[]{new Skeleton(new Cache("compound"), new Object[]{new Place(1)}), new Skeleton(new Cache("$CUT"), new Object[]{new Place(0)}), new Skeleton(new Cache("=.."), new Object[]{new Place(1), new Skeleton(".", new Object[]{new Place(3), new Place(4)})}), new Skeleton(new Cache("sys_encode_args"), new Object[]{new Place(4), new Place(5)}), new Skeleton(new Cache("=.."), new Object[]{new Place(6), new Skeleton(".", new Object[]{new Place(3), new Place(5)})}), new Skeleton(new Cache("ir_site_new"), new Object[]{new Place(6), new Place(2)})}, 0));
        add(new Clause(2, "sys_encode_expr", new Object[]{new Place(0), new Place(1)}, new Object[]{new Skeleton(new Cache("ir_site_new"), new Object[]{new Place(0), new Place(1)})}, -1));
        add(new Clause(0, "sys_encode_args", new Object[]{"[]", "[]"}, new Object[]{}, -1));
        add(new Clause(4, "sys_encode_args", new Object[]{new Skeleton(".", new Object[]{new Place(0), new Place(1)}), new Skeleton(".", new Object[]{new Place(2), new Place(3)})}, new Object[]{new Skeleton(new Cache("sys_encode_expr"), new Object[]{new Place(0), new Place(2)}), new Skeleton(new Cache("sys_encode_args"), new Object[]{new Place(1), new Place(3)})}, -1));
        add(new Clause(5, "sys_encode_clause", new Object[]{new Place(1), new Skeleton(":-", new Object[]{new Place(2), new Place(3)})}, new Object[]{new Skeleton(new Cache("nonvar"), new Object[]{new Place(1)}), new Skeleton(new Cache("="), new Object[]{new Place(1), new Skeleton(":-", new Object[]{new Place(4), new Place(3)})}), new Skeleton(new Cache("$CUT"), new Object[]{new Place(0)}), new Skeleton(new Cache("ir_site_new"), new Object[]{new Place(4), new Place(2)})}, 0));
        add(new Clause(2, "sys_encode_clause", new Object[]{new Place(0), new Place(1)}, new Object[]{new Skeleton(new Cache("ir_site_new"), new Object[]{new Place(0), new Place(1)})}, -1));
        add(new Clause(0, "sys_decode_body", new Object[]{"[]", "[]"}, new Object[]{}, -1));
        add(new Clause(4, "sys_decode_body", new Object[]{new Skeleton(".", new Object[]{new Place(0), new Place(1)}), new Skeleton(".", new Object[]{new Place(2), new Place(3)})}, new Object[]{new Skeleton(new Cache("sys_decode_goal"), new Object[]{new Place(0), new Place(2)}), new Skeleton(new Cache("sys_decode_body"), new Object[]{new Place(1), new Place(3)})}, -1));
        add(new Clause(2, "sys_decode_goal", new Object[]{new Place(1), new Place(1)}, new Object[]{new Skeleton(new Cache("var"), new Object[]{new Place(1)}), new Skeleton(new Cache("$CUT"), new Object[]{new Place(0)})}, 0));
        add(new Clause(4, "sys_decode_goal", new Object[]{new Place(1), new Place(2)}, new Object[]{new Skeleton(new Cache("ir_is_site"), new Object[]{new Place(1)}), new Skeleton(new Cache("$CUT"), new Object[]{new Place(0)}), new Skeleton(new Cache("ir_site_name"), new Object[]{new Place(1), new Place(3)}), new Skeleton(new Cache("sys_decode_goal"), new Object[]{new Place(3), new Place(2)})}, 0));
        add(new Clause(5, "sys_decode_goal", new Object[]{new Place(1), new Skeleton("$ALT", new Object[]{new Place(2)})}, new Object[]{new Skeleton(new Cache("ir_is_link"), new Object[]{new Place(1)}), new Skeleton(new Cache("$CUT"), new Object[]{new Place(0)}), new Skeleton(new Cache("findall"), new Object[]{new Place(3), new Skeleton("kb_clause_ref", new Object[]{new Place(1), 0, new Place(3)}), new Place(4)}), new Skeleton(new Cache("sys_decode_disj"), new Object[]{new Place(4), new Place(1), new Place(2)})}, 0));
        add(new Clause(6, "sys_decode_goal", new Object[]{new Place(1), new Place(2)}, new Object[]{new Skeleton(new Cache("functor"), new Object[]{new Place(1), new Place(3), new Place(4)}), new Skeleton(new Cache("sys_meta_args"), new Object[]{new Place(3), new Place(4), new Place(5)}), new Skeleton(new Cache("$CUT"), new Object[]{new Place(0)}), new Skeleton(new Cache("sys_decode_meta"), new Object[]{new Place(5), new Place(1), new Place(2)})}, 0));
        add(new Clause(1, "sys_decode_goal", new Object[]{new Place(0), new Place(0)}, new Object[]{}, -1));
        add(new Clause(0, "sys_decode_disj", new Object[]{"[]", UNDEF_OBJ, "[]"}, new Object[]{}, -1));
        add(new Clause(7, "sys_decode_disj", new Object[]{new Skeleton(".", new Object[]{new Place(0), new Place(1)}), new Place(2), new Skeleton(".", new Object[]{new Skeleton("$SEQ", new Object[]{new Place(3), new Place(4)}), new Place(5)})}, new Object[]{new Skeleton(new Cache("kb_clause_data"), new Object[]{new Place(0), new Place(2), new Place(3), new Place(6)}), new Skeleton(new Cache("sys_decode_body"), new Object[]{new Place(6), new Place(4)}), new Skeleton(new Cache("sys_decode_disj"), new Object[]{new Place(1), new Place(2), new Place(5)})}, -1));
        add(new Clause(6, "sys_decode_meta", new Object[]{new Place(0), new Place(1), new Place(2)}, new Object[]{new Skeleton(new Cache("=.."), new Object[]{new Place(1), new Skeleton(".", new Object[]{new Place(3), new Place(4)})}), new Skeleton(new Cache("sys_decode_params"), new Object[]{new Place(0), new Place(4), new Place(5)}), new Skeleton(new Cache("=.."), new Object[]{new Place(2), new Skeleton(".", new Object[]{new Place(3), new Place(5)})})}, -1));
        add(new Clause(0, "sys_decode_params", new Object[]{"[]", "[]", "[]"}, new Object[]{}, -1));
        add(new Clause(6, "sys_decode_params", new Object[]{new Skeleton(".", new Object[]{new Place(0), new Place(1)}), new Skeleton(".", new Object[]{new Place(2), new Place(3)}), new Skeleton(".", new Object[]{new Place(4), new Place(5)})}, new Object[]{new Skeleton(new Cache("sys_decode_param"), new Object[]{new Place(0), new Place(2), new Place(4)}), new Skeleton(new Cache("sys_decode_params"), new Object[]{new Place(1), new Place(3), new Place(5)})}, -1));
        add(new Clause(1, "sys_decode_param", new Object[]{"t", new Place(0), new Place(0)}, new Object[]{}, -1));
        add(new Clause(2, "sys_decode_param", new Object[]{"e", new Place(0), new Place(1)}, new Object[]{new Skeleton(new Cache("sys_decode_expr"), new Object[]{new Place(0), new Place(1)})}, -1));
        add(new Clause(2, "sys_decode_param", new Object[]{"c", new Place(0), new Place(1)}, new Object[]{new Skeleton(new Cache("sys_decode_clause"), new Object[]{new Place(0), new Place(1)})}, -1));
        add(new Clause(2, "sys_decode_param", new Object[]{"p", new Place(0), new Place(1)}, new Object[]{new Skeleton(new Cache("sys_decode_goal"), new Object[]{new Place(0), new Place(1)})}, -1));
        add(new Clause(7, "sys_decode_expr", new Object[]{new Place(1), new Place(2)}, new Object[]{new Skeleton(new Cache("compound"), new Object[]{new Place(1)}), new Skeleton(new Cache("$CUT"), new Object[]{new Place(0)}), new Skeleton(new Cache("=.."), new Object[]{new Place(1), new Skeleton(".", new Object[]{new Place(3), new Place(4)})}), new Skeleton(new Cache("sys_decode_args"), new Object[]{new Place(4), new Place(5)}), new Skeleton(new Cache("=.."), new Object[]{new Place(6), new Skeleton(".", new Object[]{new Place(3), new Place(5)})}), new Skeleton(new Cache("ir_site_name"), new Object[]{new Place(6), new Place(2)})}, 0));
        add(new Clause(2, "sys_decode_expr", new Object[]{new Place(0), new Place(1)}, new Object[]{new Skeleton(new Cache("ir_site_name"), new Object[]{new Place(0), new Place(1)})}, -1));
        add(new Clause(0, "sys_decode_args", new Object[]{"[]", "[]"}, new Object[]{}, -1));
        add(new Clause(4, "sys_decode_args", new Object[]{new Skeleton(".", new Object[]{new Place(0), new Place(1)}), new Skeleton(".", new Object[]{new Place(2), new Place(3)})}, new Object[]{new Skeleton(new Cache("sys_decode_expr"), new Object[]{new Place(0), new Place(2)}), new Skeleton(new Cache("sys_decode_args"), new Object[]{new Place(1), new Place(3)})}, -1));
        add(new Clause(5, "sys_decode_clause", new Object[]{new Place(1), new Skeleton(":-", new Object[]{new Place(2), new Place(3)})}, new Object[]{new Skeleton(new Cache("nonvar"), new Object[]{new Place(1)}), new Skeleton(new Cache("="), new Object[]{new Place(1), new Skeleton(":-", new Object[]{new Place(4), new Place(3)})}), new Skeleton(new Cache("$CUT"), new Object[]{new Place(0)}), new Skeleton(new Cache("ir_site_name"), new Object[]{new Place(4), new Place(2)})}, 0));
        add(new Clause(2, "sys_decode_clause", new Object[]{new Place(0), new Place(1)}, new Object[]{new Skeleton(new Cache("ir_site_name"), new Object[]{new Place(0), new Place(1)})}, -1));
    }

    public static void boot8() {
        run(new Goal(0, new Object[]{new Frozen(new Cache("kb_pred_touch"), new Object[]{"sys_source", 3, 1})}, -1));
        run(new Goal(0, new Object[]{new Frozen(new Cache("kb_pred_touch"), new Object[]{"sys_srcprop", 2, 1})}, -1));
        add(new Clause(1, "current_source", new Object[]{new Place(0)}, new Object[]{new Skeleton(new Cache("sys_source"), new Object[]{new Place(0), UNDEF_OBJ, UNDEF_OBJ})}, -1));
        add(new Clause(2, "source_property", new Object[]{new Place(0), new Place(1)}, new Object[]{new Skeleton(new Cache("sys_srcprop"), new Object[]{new Place(0), new Place(1)})}, -1));
        add(new Clause(4, "discontiguous", new Object[]{new Skeleton("/", new Object[]{new Place(1), new Place(2)})}, new Object[]{new Skeleton(new Cache("$CUT"), new Object[]{new Place(0)}), new Skeleton(new Cache("must_be"), new Object[]{"atom", new Place(1)}), new Skeleton(new Cache("must_be"), new Object[]{"integer", new Place(2)}), new Skeleton(new Cache("dg_get_partition"), new Object[]{new Place(3)}), new Skeleton(new Cache("assertz"), new Object[]{new Skeleton(new Cache("sys_predprop"), new Object[]{new Place(1), new Place(2), new Skeleton("sys_discontiguous", new Object[]{new Place(3)})})})}, 0));
        add(new Clause(1, "discontiguous", new Object[]{new Place(0)}, new Object[]{new Skeleton(new Cache("throw"), new Object[]{new Skeleton("error", new Object[]{new Skeleton("type_error", new Object[]{"predicate_indicator", new Place(0)}), UNDEF_OBJ})})}, -1));
        add(new Clause(3, "multifile", new Object[]{new Skeleton("/", new Object[]{new Place(1), new Place(2)})}, new Object[]{new Skeleton(new Cache("$CUT"), new Object[]{new Place(0)}), new Skeleton(new Cache("must_be"), new Object[]{"atom", new Place(1)}), new Skeleton(new Cache("must_be"), new Object[]{"integer", new Place(2)}), new Skeleton(new Cache("sys_multifile_safe"), new Object[]{new Place(1), new Place(2)})}, 0));
        add(new Clause(1, "multifile", new Object[]{new Place(0)}, new Object[]{new Skeleton(new Cache("throw"), new Object[]{new Skeleton("error", new Object[]{new Skeleton("type_error", new Object[]{"predicate_indicator", new Place(0)}), UNDEF_OBJ})})}, -1));
        add(new Clause(3, "sys_multifile_safe", new Object[]{new Place(0), new Place(1)}, new Object[]{new Skeleton(new Cache("dg_get_partition"), new Object[]{new Place(2)}), new Skeleton(make_defined(new Object[]{new Clause(5, "", new Object[]{new Place(1), new Place(2), new Place(3)}, new Object[]{new Skeleton(new Cache("sys_predprop"), new Object[]{new Place(1), new Place(2), new Skeleton("sys_usage", new Object[]{new Place(4)})}), new Skeleton(new Cache("\\=="), new Object[]{new Place(3), new Place(4)}), new Skeleton(make_defined(new Object[]{new Clause(4, "", new Object[]{new Place(1), new Place(2), new Place(3)}, new Object[]{new Skeleton(new Cache("sys_predprop"), new Object[]{new Place(1), new Place(2), new Skeleton("sys_multifile", new Object[]{new Place(3)})}), new Skeleton(new Cache("$CUT"), new Object[]{new Place(0)}), new Cache("fail")}, 0), new Clause(0, "", new Object[]{UNDEF_OBJ, UNDEF_OBJ, UNDEF_OBJ}, new Object[]{}, -1)}), new Object[]{new Place(1), new Place(2), new Place(4)}), new Skeleton(new Cache("$CUT"), new Object[]{new Place(0)}), new Skeleton(new Cache("throw"), new Object[]{new Skeleton("error", new Object[]{new Skeleton("permission_error", new Object[]{"promote", "multifile", new Skeleton("/", new Object[]{new Place(1), new Place(2)})}), UNDEF_OBJ})})}, 0), new Clause(0, "", new Object[]{UNDEF_OBJ, UNDEF_OBJ, UNDEF_OBJ}, new Object[]{}, -1)}), new Object[]{new Place(0), new Place(1), new Place(2)}), new Skeleton(new Cache("assertz"), new Object[]{new Skeleton(new Cache("sys_predprop"), new Object[]{new Place(0), new Place(1), new Skeleton("sys_multifile", new Object[]{new Place(2)})})})}, -1));
        add(new Clause(3, "include", new Object[]{new Place(0)}, new Object[]{new Skeleton(new Cache("sys_file_relative"), new Object[]{new Place(0), new Place(1)}), new Skeleton(new Cache("file_property"), new Object[]{new Place(1), new Skeleton("absolute_path", new Object[]{new Place(2)})}), new Skeleton(new Cache("sys_include_file"), new Object[]{new Place(2)})}, -1));
        add(new Clause(2, "sys_include_file", new Object[]{"user"}, new Object[]{new Skeleton(new Cache("$CUT"), new Object[]{new Place(0)}), new Skeleton(new Cache("current_input"), new Object[]{new Place(1)}), new Skeleton(new Cache("sys_include_stream"), new Object[]{"user", new Place(1)})}, 0));
        add(new Clause(5, "sys_include_file", new Object[]{new Place(1)}, new Object[]{new Skeleton(new Cache("current_prolog_flag"), new Object[]{"foreign_ext", new Place(2)}), new Skeleton(new Cache("sub_atom"), new Object[]{new Place(1), UNDEF_OBJ, UNDEF_OBJ, 0, new Place(2)}), new Skeleton(new Cache("$CUT"), new Object[]{new Place(0)}), new Skeleton(new Cache("sys_include_native"), new Object[]{new Place(1), new Place(3)}), new Skeleton(new Cache("ir_object_current"), new Object[]{new Place(3), "module", new Place(4)}), new Skeleton(new Cache("os_invoke_main"), new Object[]{new Place(4)})}, 0));
        add(new Clause(2, "sys_include_file", new Object[]{new Place(0)}, new Object[]{new Skeleton(new Cache("setup_once_cleanup"), new Object[]{new Skeleton("open", new Object[]{new Place(0), "read", new Place(1)}), new Skeleton("sys_include_stream", new Object[]{new Place(0), new Place(1)}), new Skeleton("close", new Object[]{new Place(1)})})}, -1));
        add(new Clause(4, "sys_include_native", new Object[]{new Place(1), new Place(2)}, new Object[]{new Frozen(new Cache("current_prolog_flag"), new Object[]{"import_async", "on"}), new Skeleton(new Cache("$CUT"), new Object[]{new Place(0)}), new Skeleton(new Cache("os_import_promise"), new Object[]{new Place(1), new Place(2), new Place(3)}), new Skeleton(new Cache("$YIELD"), new Object[]{new Place(3)})}, 0));
        add(new Clause(2, "sys_include_native", new Object[]{new Place(0), new Place(1)}, new Object[]{new Skeleton(new Cache("os_import_sync"), new Object[]{new Place(0), new Place(1)})}, -1));
        add(new Clause(3, ".", new Object[]{new Place(0), new Place(1)}, new Object[]{new Skeleton(new Cache("member"), new Object[]{new Place(2), new Skeleton(".", new Object[]{new Place(0), new Place(1)})}), new Skeleton(new Cache("ensure_loaded"), new Object[]{new Place(2)}), new Cache("fail")}, -1));
        add(new Clause(0, ".", new Object[]{UNDEF_OBJ, UNDEF_OBJ}, new Object[]{}, -1));
        add(new Clause(1, "ensure_loaded", new Object[]{new Place(0)}, new Object[]{new Skeleton(new Cache("var"), new Object[]{new Place(0)}), new Skeleton(new Cache("throw"), new Object[]{new Skeleton("error", new Object[]{"instantiation_error", UNDEF_OBJ})})}, -1));
        add(new Clause(1, "ensure_loaded", new Object[]{"user"}, new Object[]{new Skeleton(new Cache("$CUT"), new Object[]{new Place(0)}), new Frozen(new Cache("sys_include_file"), new Object[]{"user"})}, 0));
        add(new Clause(5, "ensure_loaded", new Object[]{new Place(0)}, new Object[]{new Skeleton(new Cache("sys_file_relative"), new Object[]{new Place(0), new Place(1)}), new Skeleton(new Cache("dg_get_partition"), new Object[]{new Place(2)}), new Skeleton(new Cache("sys_prop_map"), new Object[]{new Place(1), new Place(3)}), new Skeleton(new Cache("ir_object_current"), new Object[]{new Place(3), "absolute_path", new Place(4)}), new Skeleton(make_defined(new Object[]{new Clause(3, "", new Object[]{new Place(1), new Place(2)}, new Object[]{new Skeleton(new Cache("sys_srcprop"), new Object[]{new Place(1), new Skeleton("sys_link", new Object[]{new Place(2)})}), new Skeleton(new Cache("$CUT"), new Object[]{new Place(0)})}, 0), new Clause(2, "", new Object[]{new Place(0), new Place(1)}, new Object[]{new Skeleton(new Cache("assertz"), new Object[]{new Skeleton(new Cache("sys_srcprop"), new Object[]{new Place(0), new Skeleton("sys_link", new Object[]{new Place(1)})})})}, -1)}), new Object[]{new Place(2), new Place(4)}), new Skeleton(new Cache("sys_check_file"), new Object[]{new Place(4), new Place(3)})}, -1));
        add(new Clause(4, "sys_check_file", new Object[]{new Place(1), new Place(2)}, new Object[]{new Skeleton(new Cache("shield"), new Object[]{new Skeleton("sys_action_file", new Object[]{new Place(1), new Place(2), new Place(3)})}), new Skeleton(new Cache("$CUT"), new Object[]{new Place(0)}), new Skeleton(make_defined(new Object[]{new Clause(3, "", new Object[]{new Place(1), new Place(2)}, new Object[]{new Skeleton(new Cache("="), new Object[]{new Place(1), "replay"}), new Skeleton(new Cache("$CUT"), new Object[]{new Place(0)}), new Skeleton(new Cache("sys_replay_file"), new Object[]{new Place(2)})}, 0), new Clause(3, "", new Object[]{new Place(1), new Place(2)}, new Object[]{new Skeleton(new Cache("="), new Object[]{new Place(1), "clear_load"}), new Skeleton(new Cache("$CUT"), new Object[]{new Place(0)}), new Skeleton(new Cache("sys_clear_file"), new Object[]{new Place(2)}), new Skeleton(new Cache("sys_load_file"), new Object[]{new Place(2)})}, 0), new Clause(0, "", new Object[]{UNDEF_OBJ, UNDEF_OBJ}, new Object[]{}, -1)}), new Object[]{new Place(3), new Place(1)})}, 0));
        add(new Clause(1, "sys_check_file", new Object[]{new Place(0), UNDEF_OBJ}, new Object[]{new Skeleton(new Cache("sys_load_file"), new Object[]{new Place(0)})}, -1));
        add(new Clause(6, "sys_action_file", new Object[]{new Place(1), new Place(2), new Place(3)}, new Object[]{new Skeleton(new Cache("sys_source"), new Object[]{new Place(1), new Place(4), new Place(5)}), new Skeleton(new Cache("$CUT"), new Object[]{new Place(0)}), new Skeleton(make_defined(new Object[]{new Clause(3, "", new Object[]{new Place(1), new Place(2), UNDEF_OBJ, UNDEF_OBJ, UNDEF_OBJ}, new Object[]{new Skeleton(new Cache("="), new Object[]{new Place(1), 1}), new Skeleton(new Cache("$CUT"), new Object[]{new Place(0)}), new Skeleton(new Cache("="), new Object[]{new Place(2), "none"})}, 0), new Clause(5, "", new Object[]{UNDEF_OBJ, new Place(0), new Place(1), new Place(2), new Place(3)}, new Object[]{new Skeleton(make_defined(new Object[]{new Clause(3, "", new Object[]{new Place(1), new Place(2)}, new Object[]{new Skeleton(new Cache("var"), new Object[]{new Place(1)}), new Skeleton(new Cache("$CUT"), new Object[]{new Place(0)}), new Skeleton(new Cache("sys_prop_map"), new Object[]{new Place(2), new Place(1)})}, 0), new Clause(0, "", new Object[]{UNDEF_OBJ, UNDEF_OBJ}, new Object[]{}, -1)}), new Object[]{new Place(1), new Place(2)}), new Skeleton(new Cache("ir_object_current"), new Object[]{new Place(1), "last_modified", new Place(4)}), new Skeleton(make_defined(new Object[]{new Clause(5, "", new Object[]{new Place(1), new Place(2), new Place(3), new Place(4)}, new Object[]{new Skeleton(new Cache("="), new Object[]{new Place(1), new Place(2)}), new Skeleton(new Cache("$CUT"), new Object[]{new Place(0)}), new Skeleton(new Cache("="), new Object[]{new Place(3), "replay"}), new Skeleton(new Cache("retractall"), new Object[]{new Skeleton(new Cache("sys_source"), new Object[]{new Place(4), UNDEF_OBJ, UNDEF_OBJ})}), new Skeleton(new Cache("assertz"), new Object[]{new Skeleton(new Cache("sys_source"), new Object[]{new Place(4), new Place(2), 1})})}, 0), new Clause(3, "", new Object[]{new Place(0), UNDEF_OBJ, new Place(1), new Place(2)}, new Object[]{new Skeleton(new Cache("="), new Object[]{new Place(1), "clear_load"}), new Skeleton(new Cache("retractall"), new Object[]{new Skeleton(new Cache("sys_source"), new Object[]{new Place(2), UNDEF_OBJ, UNDEF_OBJ})}), new Skeleton(new Cache("assertz"), new Object[]{new Skeleton(new Cache("sys_source"), new Object[]{new Place(2), new Place(0), 1})})}, -1)}), new Object[]{new Place(4), new Place(3), new Place(0), new Place(2)})}, -1)}), new Object[]{new Place(5), new Place(3), new Place(2), new Place(1), new Place(4)})}, 0));
        add(new Clause(3, "sys_action_file", new Object[]{new Place(0), new Place(1), UNDEF_OBJ}, new Object[]{new Skeleton(make_defined(new Object[]{new Clause(3, "", new Object[]{new Place(1), new Place(2)}, new Object[]{new Skeleton(new Cache("var"), new Object[]{new Place(1)}), new Skeleton(new Cache("$CUT"), new Object[]{new Place(0)}), new Skeleton(new Cache("sys_prop_map"), new Object[]{new Place(2), new Place(1)})}, 0), new Clause(0, "", new Object[]{UNDEF_OBJ, UNDEF_OBJ}, new Object[]{}, -1)}), new Object[]{new Place(1), new Place(0)}), new Skeleton(new Cache("ir_object_current"), new Object[]{new Place(1), "last_modified", new Place(2)}), new Skeleton(new Cache("assertz"), new Object[]{new Skeleton(new Cache("sys_source"), new Object[]{new Place(0), new Place(2), 1})}), new Cache("fail")}, -1));
        run(new Goal(0, new Object[]{new Frozen(new Cache("kb_pred_touch"), new Object[]{"sys_lastpred", 3, 1})}, -1));
        add(new Clause(3, "sys_load_file", new Object[]{new Place(0)}, new Object[]{new Skeleton(new Cache("setup_once_cleanup"), new Object[]{new Skeleton("sys_loading_begin", new Object[]{new Place(0), new Place(1), new Place(2)}), new Skeleton("sys_include_file", new Object[]{new Place(0)}), new Skeleton("sys_loading_end", new Object[]{new Place(1), new Place(2)})})}, -1));
        add(new Clause(6, "sys_loading_begin", new Object[]{new Place(1), new Place(2), new Skeleton("just", new Object[]{new Place(3), new Place(4)})}, new Object[]{new Skeleton(new Cache("current_task"), new Object[]{new Place(5)}), new Skeleton(new Cache("retract"), new Object[]{new Skeleton(new Cache("sys_lastpred"), new Object[]{new Place(5), new Place(3), new Place(4)})}), new Skeleton(new Cache("$CUT"), new Object[]{new Place(0)}), new Skeleton(new Cache("dg_get_partition"), new Object[]{new Place(2)}), new Skeleton(new Cache("dg_set_partition"), new Object[]{new Place(1)})}, 0));
        add(new Clause(2, "sys_loading_begin", new Object[]{new Place(0), new Place(1), "nothing"}, new Object[]{new Skeleton(new Cache("dg_get_partition"), new Object[]{new Place(1)}), new Skeleton(new Cache("dg_set_partition"), new Object[]{new Place(0)})}, -1));
        add(new Clause(4, "sys_loading_end", new Object[]{new Place(0), new Skeleton("just", new Object[]{new Place(1), new Place(2)})}, new Object[]{new Skeleton(new Cache("dg_get_partition"), new Object[]{new Place(3)}), new Skeleton(new Cache("retractall"), new Object[]{new Skeleton(new Cache("sys_predprop"), new Object[]{UNDEF_OBJ, UNDEF_OBJ, new Skeleton("sys_discontiguous", new Object[]{new Place(3)})})}), new Skeleton(new Cache("dg_set_partition"), new Object[]{new Place(0)}), new Skeleton(new Cache("sys_update_last"), new Object[]{new Place(1), new Place(2)})}, -1));
        add(new Clause(3, "sys_loading_end", new Object[]{new Place(0), "nothing"}, new Object[]{new Skeleton(new Cache("dg_get_partition"), new Object[]{new Place(1)}), new Skeleton(new Cache("retractall"), new Object[]{new Skeleton(new Cache("sys_predprop"), new Object[]{UNDEF_OBJ, UNDEF_OBJ, new Skeleton("sys_discontiguous", new Object[]{new Place(1)})})}), new Skeleton(new Cache("dg_set_partition"), new Object[]{new Place(0)}), new Skeleton(new Cache("current_task"), new Object[]{new Place(2)}), new Skeleton(new Cache("retractall"), new Object[]{new Skeleton(new Cache("sys_lastpred"), new Object[]{new Place(2), UNDEF_OBJ, UNDEF_OBJ})})}, -1));
        add(new Clause(3, "sys_update_last", new Object[]{new Place(0), new Place(1)}, new Object[]{new Skeleton(new Cache("current_task"), new Object[]{new Place(2)}), new Skeleton(new Cache("retractall"), new Object[]{new Skeleton(new Cache("sys_lastpred"), new Object[]{new Place(2), UNDEF_OBJ, UNDEF_OBJ})}), new Skeleton(new Cache("assertz"), new Object[]{new Skeleton(new Cache("sys_lastpred"), new Object[]{new Place(2), new Place(0), new Place(1)})})}, -1));
        add(new Clause(2, "sys_style_static", new Object[]{new Place(1)}, new Object[]{new Skeleton(new Cache("nonvar"), new Object[]{new Place(1)}), new Skeleton(new Cache("="), new Object[]{new Place(1), new Skeleton(":-", new Object[]{UNDEF_OBJ})}), new Skeleton(new Cache("$CUT"), new Object[]{new Place(0)})}, 0));
        add(new Clause(3, "sys_style_static", new Object[]{new Place(1)}, new Object[]{new Skeleton(new Cache("nonvar"), new Object[]{new Place(1)}), new Skeleton(new Cache("="), new Object[]{new Place(1), new Skeleton(":-", new Object[]{new Place(2), UNDEF_OBJ})}), new Skeleton(new Cache("$CUT"), new Object[]{new Place(0)}), new Skeleton(new Cache("sys_style_head"), new Object[]{new Place(2)})}, 0));
        add(new Clause(1, "sys_style_static", new Object[]{new Place(0)}, new Object[]{new Skeleton(new Cache("sys_style_head"), new Object[]{new Place(0)})}, -1));
        add(new Clause(4, "sys_style_head", new Object[]{new Place(1)}, new Object[]{new Skeleton(new Cache("callable"), new Object[]{new Place(1)}), new Skeleton(new Cache("$CUT"), new Object[]{new Place(0)}), new Skeleton(new Cache("functor"), new Object[]{new Place(1), new Place(2), new Place(3)}), new Skeleton(new Cache("sys_style_indicator"), new Object[]{new Place(2), new Place(3)})}, 0));
        add(new Clause(0, "sys_style_head", new Object[]{UNDEF_OBJ}, new Object[]{}, -1));
        add(new Clause(4, "sys_style_indicator", new Object[]{new Place(1), new Place(2)}, new Object[]{new Skeleton(new Cache("current_task"), new Object[]{new Place(3)}), new Skeleton(new Cache("sys_lastpred"), new Object[]{new Place(3), new Place(1), new Place(2)}), new Skeleton(new Cache("$CUT"), new Object[]{new Place(0)})}, 0));
        add(new Clause(4, "sys_style_indicator", new Object[]{new Place(1), new Place(2)}, new Object[]{new Skeleton(new Cache("dg_get_partition"), new Object[]{new Place(3)}), new Skeleton(new Cache("sys_predprop"), new Object[]{new Place(1), new Place(2), new Skeleton("sys_usage", new Object[]{new Place(3)})}), new Skeleton(new Cache("$CUT"), new Object[]{new Place(0)}), new Skeleton(make_defined(new Object[]{new Clause(4, "", new Object[]{new Place(1), new Place(2), new Place(3)}, new Object[]{new Skeleton(new Cache("sys_predprop"), new Object[]{new Place(1), new Place(2), new Skeleton("sys_discontiguous", new Object[]{new Place(3)})}), new Skeleton(new Cache("$CUT"), new Object[]{new Place(0)})}, 0), new Clause(3, "", new Object[]{new Place(0), new Place(1), UNDEF_OBJ}, new Object[]{new Skeleton(new Cache("="), new Object[]{new Place(2), new Skeleton("warning", new Object[]{new Skeleton("syntax_error", new Object[]{"discontiguous_pred", new Skeleton("/", new Object[]{new Place(0), new Place(1)})}), UNDEF_OBJ})}), new Skeleton(new Cache("sys_fill_stack"), new Object[]{new Place(2)}), new Skeleton(new Cache("sys_print_error"), new Object[]{new Place(2)})}, -1)}), new Object[]{new Place(1), new Place(2), new Place(3)}), new Skeleton(new Cache("sys_update_last"), new Object[]{new Place(1), new Place(2)})}, 0));
        add(new Clause(2, "sys_style_indicator", new Object[]{new Place(0), new Place(1)}, new Object[]{new Skeleton(new Cache("sys_usage_predicate"), new Object[]{new Place(0), new Place(1)}), new Skeleton(new Cache("sys_update_last"), new Object[]{new Place(0), new Place(1)})}, -1));
        add(new Clause(3, "sys_usage_predicate", new Object[]{new Place(0), new Place(1)}, new Object[]{new Skeleton(new Cache("dg_get_partition"), new Object[]{new Place(2)}), new Skeleton(make_defined(new Object[]{new Clause(5, "", new Object[]{new Place(1), new Place(2), new Place(3)}, new Object[]{new Skeleton(make_defined(new Object[]{new Clause(4, "", new Object[]{new Place(1), new Place(2), new Place(3)}, new Object[]{new Skeleton(new Cache("sys_predprop"), new Object[]{new Place(1), new Place(2), new Skeleton("sys_multifile", new Object[]{new Place(3)})}), new Skeleton(new Cache("$CUT"), new Object[]{new Place(0)}), new Cache("fail")}, 0), new Clause(0, "", new Object[]{UNDEF_OBJ, UNDEF_OBJ, UNDEF_OBJ}, new Object[]{}, -1)}), new Object[]{new Place(1), new Place(2), new Place(3)}), new Skeleton(new Cache("sys_predprop"), new Object[]{new Place(1), new Place(2), new Skeleton("sys_usage", new Object[]{new Place(4)})}), new Skeleton(new Cache("\\=="), new Object[]{new Place(3), new Place(4)}), new Skeleton(new Cache("$CUT"), new Object[]{new Place(0)}), new Skeleton(new Cache("throw"), new Object[]{new Skeleton("error", new Object[]{new Skeleton("permission_error", new Object[]{"redefine", "procedure", new Skeleton("/", new Object[]{new Place(1), new Place(2)})}), UNDEF_OBJ})})}, 0), new Clause(0, "", new Object[]{UNDEF_OBJ, UNDEF_OBJ, UNDEF_OBJ}, new Object[]{}, -1)}), new Object[]{new Place(0), new Place(1), new Place(2)}), new Skeleton(new Cache("assertz"), new Object[]{new Skeleton(new Cache("sys_predprop"), new Object[]{new Place(0), new Place(1), new Skeleton("sys_usage", new Object[]{new Place(2)})})})}, -1));
        add(new Clause(3, "sys_include_stream", new Object[]{new Place(0), new Place(1)}, new Object[]{new Skeleton(new Cache("current_task"), new Object[]{new Place(2)}), new Skeleton(new Cache("setup_once_cleanup"), new Object[]{new Skeleton("asserta", new Object[]{new Skeleton("sys_including", new Object[]{new Place(0), new Place(2), new Place(1)})}), new Skeleton("sys_include_lines", new Object[]{new Place(1)}), new Skeleton("once", new Object[]{new Skeleton("retract", new Object[]{new Skeleton("sys_including", new Object[]{new Place(0), new Place(2), new Place(1)})})})})}, -1));
        add(new Clause(3, "sys_include_lines", new Object[]{new Place(1)}, new Object[]{new Cache("repeat"), new Skeleton(new Cache("catch"), new Object[]{new Skeleton("sys_next_term", new Object[]{new Place(1)}), new Place(2), new Skeleton(",", new Object[]{new Skeleton("sys_print_error", new Object[]{new Place(2)}), "fail"})}), new Skeleton(new Cache("$CUT"), new Object[]{new Place(0)})}, 0));
        add(new Clause(4, "sys_next_term", new Object[]{new Place(0)}, new Object[]{new Skeleton(new Cache("read_term"), new Object[]{new Place(0), new Place(1), new Skeleton(".", new Object[]{new Skeleton("variable_names", new Object[]{new Place(2)}), new Skeleton(".", new Object[]{new Skeleton("singletons", new Object[]{new Place(3)}), "[]"})})}), new Skeleton(make_defined(new Object[]{new Clause(2, "", new Object[]{new Place(1), UNDEF_OBJ, UNDEF_OBJ}, new Object[]{new Skeleton(new Cache("=="), new Object[]{new Place(1), "end_of_file"}), new Skeleton(new Cache("$CUT"), new Object[]{new Place(0)})}, 0), new Clause(5, "", new Object[]{new Place(1), new Place(2), UNDEF_OBJ}, new Object[]{new Skeleton(new Cache("nonvar"), new Object[]{new Place(1)}), new Skeleton(new Cache("="), new Object[]{new Place(1), new Skeleton("?-", new Object[]{new Place(3)})}), new Skeleton(new Cache("$CUT"), new Object[]{new Place(0)}), new Skeleton(new Cache("sys_expand_unattended"), new Object[]{new Place(3), new Place(2), new Place(4)}), new Skeleton(new Cache("sys_query_unattended"), new Object[]{new Place(4), new Place(2)}), new Cache("fail")}, 0), new Clause(6, "", new Object[]{new Place(0), new Place(1), new Place(2)}, new Object[]{new Skeleton(new Cache("sys_multiton_keys"), new Object[]{new Place(1), new Place(2), new Place(3)}), new Skeleton(new Cache("sys_multiton_check"), new Object[]{new Place(3)}), new Skeleton(new Cache("sys_singleton_keys"), new Object[]{new Place(2), new Place(4)}), new Skeleton(new Cache("sys_singleton_check"), new Object[]{new Place(4)}), new Skeleton(new Cache("expand_term"), new Object[]{new Place(0), new Place(5)}), new Skeleton(new Cache("sys_handle_clump"), new Object[]{new Place(5)}), new Cache("fail")}, -1)}), new Object[]{new Place(1), new Place(2), new Place(3)})}, -1));
        add(new Clause(4, "sys_handle_clump", new Object[]{new Place(1)}, new Object[]{new Skeleton(new Cache("nonvar"), new Object[]{new Place(1)}), new Skeleton(new Cache("="), new Object[]{new Place(1), new Skeleton(".", new Object[]{new Place(2), new Place(3)})}), new Skeleton(new Cache("$CUT"), new Object[]{new Place(0)}), new Skeleton(new Cache("sys_handle_clump"), new Object[]{new Place(2)}), new Skeleton(new Cache("sys_handle_clump"), new Object[]{new Place(3)})}, 0));
        add(new Clause(2, "sys_handle_clump", new Object[]{new Place(1)}, new Object[]{new Skeleton(new Cache("nonvar"), new Object[]{new Place(1)}), new Skeleton(new Cache("="), new Object[]{new Place(1), "[]"}), new Skeleton(new Cache("$CUT"), new Object[]{new Place(0)})}, 0));
        add(new Clause(1, "sys_handle_clump", new Object[]{new Place(0)}, new Object[]{new Skeleton(new Cache("sys_style_static"), new Object[]{new Place(0)}), new Skeleton(new Cache("sys_handle_static"), new Object[]{new Place(0)})}, -1));
        add(new Clause(3, "sys_handle_static", new Object[]{new Place(1)}, new Object[]{new Skeleton(new Cache("nonvar"), new Object[]{new Place(1)}), new Skeleton(new Cache("="), new Object[]{new Place(1), new Skeleton(":-", new Object[]{UNDEF_OBJ})}), new Skeleton(new Cache("$CUT"), new Object[]{new Place(0)}), new Skeleton(new Cache("sys_frost_horn"), new Object[]{new Place(1), 1, new Place(2)}), new Skeleton(make_defined(new Object[]{new Clause(2, "", new Object[]{new Place(1)}, new Object[]{new Skeleton(new Cache("sys_goal_call"), new Object[]{new Place(1)}), new Skeleton(new Cache("$CUT"), new Object[]{new Place(0)})}, 0), new Clause(0, "", new Object[]{UNDEF_OBJ}, new Object[]{new Skeleton(new Cache("throw"), new Object[]{new Skeleton("error", new Object[]{new Frozen("syntax_error", new Object[]{"directive_failed"}), UNDEF_OBJ})})}, -1)}), new Object[]{new Place(2)})}, 0));
        add(new Clause(7, "sys_handle_static", new Object[]{new Place(1)}, new Object[]{new Skeleton(new Cache("nonvar"), new Object[]{new Place(1)}), new Skeleton(new Cache("="), new Object[]{new Place(1), new Skeleton(":-", new Object[]{new Place(2), UNDEF_OBJ})}), new Skeleton(new Cache("$CUT"), new Object[]{new Place(0)}), new Skeleton(new Cache("functor"), new Object[]{new Place(2), new Place(3), new Place(4)}), new Skeleton(new Cache("sys_load_type"), new Object[]{new Place(3), new Place(4), new Place(5)}), new Skeleton(new Cache("sys_frost_horn"), new Object[]{new Place(1), new Place(5), new Place(6)}), new Skeleton(new Cache("sys_clause_add"), new Object[]{new Place(6), 2})}, 0));
        add(new Clause(5, "sys_handle_static", new Object[]{new Place(0)}, new Object[]{new Skeleton(new Cache("functor"), new Object[]{new Place(0), new Place(1), new Place(2)}), new Skeleton(new Cache("sys_load_type"), new Object[]{new Place(1), new Place(2), new Place(3)}), new Skeleton(new Cache("sys_frost_horn"), new Object[]{new Place(0), new Place(3), new Place(4)}), new Skeleton(new Cache("sys_clause_add"), new Object[]{new Place(4), 2})}, -1));
        add(new Clause(5, "sys_load_type", new Object[]{new Place(1), new Place(2), 0}, new Object[]{new Skeleton(new Cache("kb_pred_link"), new Object[]{new Place(1), new Place(2), new Place(3)}), new Skeleton(new Cache("kb_link_flags"), new Object[]{new Place(3), new Place(4)}), new Skeleton(new Cache("=\\="), new Object[]{new Skeleton(new Cache("/\\"), new Object[]{new Place(4), 1}), 0}), new Skeleton(new Cache("$CUT"), new Object[]{new Place(0)})}, 0));
        add(new Clause(0, "sys_load_type", new Object[]{UNDEF_OBJ, UNDEF_OBJ, 1}, new Object[]{}, -1));
        add(new Clause(0, "strings", new Object[]{"syntax_error.discontiguous_pred", "de", "Unterbrochenes Prädikat ~q, entsprechend deklarieren."}, new Object[]{}, -1));
        add(new Clause(0, "strings", new Object[]{"syntax_error.bad_module", "de", "Fehlerhaftes Modul."}, new Object[]{}, -1));
        add(new Clause(0, "strings", new Object[]{"permission_error.modify.static_procedure", "de", "Kann Prädikat ~q nicht aktualisieren."}, new Object[]{}, -1));
        add(new Clause(0, "strings", new Object[]{"permission_error.coerce.procedure", "de", "Kann Prädikat ~q nicht zu anderen Delegiertentyp zwingen."}, new Object[]{}, -1));
        add(new Clause(0, "strings", new Object[]{"permission_error.access.private_procedure", "de", "Kann auf Prädikat ~q nicht zugreifen."}, new Object[]{}, -1));
        add(new Clause(0, "strings", new Object[]{"permission_error.redefine.procedure", "de", "Kann Prädikat ~q nicht umdefinieren, nicht als Mehrdateien markiert."}, new Object[]{}, -1));
        add(new Clause(0, "strings", new Object[]{"permission_error.promote.multifile", "de", "Kann Funktion ~q nicht zu Mehrdateien heben."}, new Object[]{}, -1));
        add(new Clause(0, "strings", new Object[]{"permission_error.create.operator", "de", "Kann Operator ~q nicht erstellen."}, new Object[]{}, -1));
        add(new Clause(0, "strings", new Object[]{"permission_error.invoke.method", "de", "Kann Methode ~q nicht aufrufen."}, new Object[]{}, -1));
        add(new Clause(0, "strings", new Object[]{"permission_error.modify.field", "de", "Kann Feld ~q nicht aktualisieren."}, new Object[]{}, -1));
        add(new Clause(0, "strings", new Object[]{"permission_error.access.source_sink", "de", "Kann auf Strom ~q nicht zugreifen."}, new Object[]{}, -1));
        add(new Clause(0, "strings", new Object[]{"resource_error.unknown_host", "de", "Dienst nicht gefunden, Verzeichnisdienst aktivieren."}, new Object[]{}, -1));
        add(new Clause(0, "strings", new Object[]{"resource_error.connect_failed", "de", "Verbindung zu Dienst fehlgeschlagen, Verbindungsfähigkeit sicherstellen."}, new Object[]{}, -1));
        add(new Clause(0, "strings", new Object[]{"resource_error.illegal_method", "de", "Methode nicht zugelassen."}, new Object[]{}, -1));
        add(new Clause(0, "strings", new Object[]{"resource_error.internal_error", "de", "Interner Fehler, Administrator kontaktieren."}, new Object[]{}, -1));
        add(new Clause(0, "strings", new Object[]{"resource_error.service_unavailable", "de", "Dienst nicht verfügbar, später wieder versuchen."}, new Object[]{}, -1));
        add(new Clause(0, "strings", new Object[]{"resource_error.state_error", "de", "Übergang nicht erlaubt."}, new Object[]{}, -1));
        add(new Clause(0, "strings", new Object[]{"existence_error.method", "de", "Methode ~q undefiniert."}, new Object[]{}, -1));
        add(new Clause(0, "strings", new Object[]{"existence_error.procedure", "de", "Prädikat ~q undefiniert."}, new Object[]{}, -1));
        add(new Clause(0, "strings", new Object[]{"syntax_error.discontiguous_pred", "", "Discontiguous predicate ~q, declare accordingly."}, new Object[]{}, -1));
        add(new Clause(0, "strings", new Object[]{"syntax_error.bad_module", "", "Faulty module."}, new Object[]{}, -1));
        add(new Clause(0, "strings", new Object[]{"permission_error.modify.static_procedure", "", "Can\'t modify predicate ~q."}, new Object[]{}, -1));
        add(new Clause(0, "strings", new Object[]{"permission_error.coerce.procedure", "", "Can\'t coerce predicate ~q into other delegate type."}, new Object[]{}, -1));
        add(new Clause(0, "strings", new Object[]{"permission_error.access.private_procedure", "", "Can\'t access predicate ~q."}, new Object[]{}, -1));
        add(new Clause(0, "strings", new Object[]{"permission_error.redefine.procedure", "", "Can\'t redefine predicate ~q, not marked multfile."}, new Object[]{}, -1));
        add(new Clause(0, "strings", new Object[]{"permission_error.promote.multifile", "", "Can\'t promote predicate ~q to multi-file."}, new Object[]{}, -1));
        add(new Clause(0, "strings", new Object[]{"permission_error.create.operator", "", "Can\'t create operator ~q."}, new Object[]{}, -1));
        add(new Clause(0, "strings", new Object[]{"permission_error.invoke.method", "", "Can\'t invoke method ~q."}, new Object[]{}, -1));
        add(new Clause(0, "strings", new Object[]{"permission_error.modify.field", "", "Can\'t modify field ~q."}, new Object[]{}, -1));
        add(new Clause(0, "strings", new Object[]{"permission_error.access.source_sink", "", "Can\'t access stream ~q."}, new Object[]{}, -1));
        add(new Clause(0, "strings", new Object[]{"resource_error.unknown_host", "", "Service lookup failed, enable directory service."}, new Object[]{}, -1));
        add(new Clause(0, "strings", new Object[]{"resource_error.connect_failed", "", "Service connect failed, assure connectivity."}, new Object[]{}, -1));
        add(new Clause(0, "strings", new Object[]{"resource_error.illegal_method", "", "Method not allowed."}, new Object[]{}, -1));
        add(new Clause(0, "strings", new Object[]{"resource_error.internal_error", "", "Internal error, contact administrator."}, new Object[]{}, -1));
        add(new Clause(0, "strings", new Object[]{"resource_error.service_unavailable", "", "Service unavailable, try again later."}, new Object[]{}, -1));
        add(new Clause(0, "strings", new Object[]{"resource_error.state_error", "", "Transition not permitted."}, new Object[]{}, -1));
        add(new Clause(0, "strings", new Object[]{"existence_error.method", "", "Undefined method ~q."}, new Object[]{}, -1));
        add(new Clause(0, "strings", new Object[]{"existence_error.procedure", "", "Undefined predicate ~q."}, new Object[]{}, -1));
    }

    public static void boot2() {
        add(new Clause(0, "true", new Object[]{}, new Object[]{}, -1));
        add(new Clause(1, "!", new Object[]{}, new Object[]{new Skeleton(new Cache("$CUT"), new Object[]{new Place(0)})}, 0));
        add(new Clause(6, ",", new Object[]{new Place(0), new Place(1)}, new Object[]{new Skeleton(new Cache("sys_trans_body"), new Object[]{new Place(0), "nothing", new Place(2), 0, new Place(3), new Place(4)}), new Skeleton(new Cache("sys_trans_body"), new Object[]{new Place(1), new Place(2), new Place(5), 0, new Place(4), "[]"}), new Skeleton(new Cache("$SEQ"), new Object[]{new Place(5), new Place(3)})}, -1));
        add(new Clause(7, ";", new Object[]{new Place(0), new Place(1)}, new Object[]{new Skeleton(new Cache("sys_trans_alter"), new Object[]{new Place(0), "nothing", new Place(2), new Place(3), 0, new Place(4)}), new Skeleton(new Cache("sys_trans_disj"), new Object[]{new Place(1), new Place(4), new Place(2), new Place(5), 0, new Place(6)}), new Skeleton(new Cache("$SEQ"), new Object[]{new Place(5), new Skeleton(".", new Object[]{new Skeleton("$ALT", new Object[]{new Skeleton(".", new Object[]{new Place(3), new Place(6)})}), "[]"})})}, -1));
        add(new Clause(8, "->", new Object[]{new Place(0), new Place(1)}, new Object[]{new Skeleton(new Cache("sys_trans_body"), new Object[]{new Place(0), "nothing", new Place(2), 0, new Place(3), new Skeleton(".", new Object[]{new Skeleton("$CUT", new Object[]{new Place(4)}), new Place(5)})}), new Skeleton(new Cache("sys_trans_body"), new Object[]{new Place(1), "nothing", new Place(6), 0, new Place(5), "[]"}), new Skeleton(new Cache("sys_trans_mark"), new Object[]{new Place(2), new Place(7), new Place(3)}), new Skeleton(new Cache("$SEQ"), new Object[]{new Place(6), new Skeleton(".", new Object[]{new Skeleton("$ALT", new Object[]{new Skeleton(".", new Object[]{new Skeleton("$SEQ", new Object[]{new Skeleton("just", new Object[]{new Place(4)}), new Place(7)}), "[]"})}), "[]"})})}, -1));
        add(new Clause(3, "\\=", new Object[]{new Place(1), new Place(2)}, new Object[]{new Skeleton(new Cache("="), new Object[]{new Place(1), new Place(2)}), new Skeleton(new Cache("$CUT"), new Object[]{new Place(0)}), new Cache("fail")}, 0));
        add(new Clause(0, "\\=", new Object[]{UNDEF_OBJ, UNDEF_OBJ}, new Object[]{}, -1));
        add(new Clause(2, "\\+", new Object[]{new Place(1)}, new Object[]{new Skeleton(new Cache("call"), new Object[]{new Place(1)}), new Skeleton(new Cache("$CUT"), new Object[]{new Place(0)}), new Cache("fail")}, 0));
        add(new Clause(0, "\\+", new Object[]{UNDEF_OBJ}, new Object[]{}, -1));
        add(new Clause(2, "once", new Object[]{new Place(1)}, new Object[]{new Skeleton(new Cache("call"), new Object[]{new Place(1)}), new Skeleton(new Cache("$CUT"), new Object[]{new Place(0)})}, 0));
        add(new Clause(0, "repeat", new Object[]{}, new Object[]{}, -1));
        add(new Clause(0, "repeat", new Object[]{}, new Object[]{new Cache("repeat")}, -1));
        add(new Clause(4, "catch", new Object[]{new Place(0), new Place(1), new Place(2)}, new Object[]{new Skeleton(new Cache("sys_trap"), new Object[]{new Place(0), new Place(3), new Skeleton("sys_error_handler", new Object[]{new Place(3), new Place(1), new Place(2)})})}, -1));
        add(new Clause(1, "sys_error_handler", new Object[]{new Place(0), UNDEF_OBJ, UNDEF_OBJ}, new Object[]{new Skeleton(new Cache("sys_chain_head"), new Object[]{new Place(0), new Skeleton("error", new Object[]{new Skeleton("system_error", new Object[]{UNDEF_OBJ}), UNDEF_OBJ})}), new Skeleton(new Cache("sys_raise"), new Object[]{new Place(0)})}, -1));
        add(new Clause(4, "sys_error_handler", new Object[]{new Place(1), new Place(2), new Place(3)}, new Object[]{new Skeleton(new Cache("sys_chain_head"), new Object[]{new Place(1), new Place(2)}), new Skeleton(new Cache("$CUT"), new Object[]{new Place(0)}), new Skeleton(new Cache("call"), new Object[]{new Place(3)})}, 0));
        add(new Clause(1, "sys_error_handler", new Object[]{new Place(0), UNDEF_OBJ, UNDEF_OBJ}, new Object[]{new Skeleton(new Cache("sys_raise"), new Object[]{new Place(0)})}, -1));
        add(new Clause(3, "sys_chain_head", new Object[]{new Skeleton("cause", new Object[]{new Place(1), UNDEF_OBJ}), new Place(2)}, new Object[]{new Skeleton(new Cache("$CUT"), new Object[]{new Place(0)}), new Skeleton(new Cache("="), new Object[]{new Place(1), new Place(2)})}, 0));
        add(new Clause(1, "sys_chain_head", new Object[]{new Place(0), new Place(0)}, new Object[]{}, -1));
        add(new Clause(1, "throw", new Object[]{new Place(0)}, new Object[]{new Skeleton(new Cache("sys_fill_stack"), new Object[]{new Place(0)}), new Skeleton(new Cache("sys_raise"), new Object[]{new Place(0)})}, -1));
        add(new Clause(1, "sys_fill_stack", new Object[]{new Place(0)}, new Object[]{new Skeleton(new Cache("var"), new Object[]{new Place(0)}), new Skeleton(new Cache("throw"), new Object[]{new Skeleton("error", new Object[]{"instantiation_error", UNDEF_OBJ})})}, -1));
        add(new Clause(2, "sys_fill_stack", new Object[]{new Skeleton("error", new Object[]{UNDEF_OBJ, new Place(1)})}, new Object[]{new Skeleton(new Cache("$CUT"), new Object[]{new Place(0)}), new Skeleton(new Cache("sys_fetch_stack"), new Object[]{new Place(1)})}, 0));
        add(new Clause(2, "sys_fill_stack", new Object[]{new Skeleton("warning", new Object[]{UNDEF_OBJ, new Place(1)})}, new Object[]{new Skeleton(new Cache("$CUT"), new Object[]{new Place(0)}), new Skeleton(new Cache("sys_fetch_stack"), new Object[]{new Place(1)})}, 0));
        add(new Clause(0, "sys_fill_stack", new Object[]{UNDEF_OBJ}, new Object[]{}, -1));
        add(new Clause(5, "sys_fetch_stack", new Object[]{new Place(1)}, new Object[]{new Skeleton(new Cache("var"), new Object[]{new Place(1)}), new Skeleton(new Cache("$CUT"), new Object[]{new Place(0)}), new Skeleton(new Cache("current_task"), new Object[]{new Place(2)}), new Skeleton(new Cache("findall"), new Object[]{new Skeleton("sys_including", new Object[]{new Place(3), new Place(4)}), new Skeleton("sys_including", new Object[]{new Place(3), new Place(2), new Place(4)}), new Place(1)})}, 0));
        add(new Clause(5, "sys_fetch_stack", new Object[]{new Skeleton(".", new Object[]{UNDEF_OBJ, new Place(1)})}, new Object[]{new Skeleton(new Cache("var"), new Object[]{new Place(1)}), new Skeleton(new Cache("$CUT"), new Object[]{new Place(0)}), new Skeleton(new Cache("current_task"), new Object[]{new Place(2)}), new Skeleton(new Cache("findall"), new Object[]{new Skeleton("sys_including", new Object[]{new Place(3), new Place(4)}), new Skeleton("sys_including", new Object[]{new Place(3), new Place(2), new Place(4)}), new Place(1)})}, 0));
        add(new Clause(5, "sys_fetch_stack", new Object[]{new Skeleton(".", new Object[]{UNDEF_OBJ, new Skeleton(".", new Object[]{UNDEF_OBJ, new Place(1)})})}, new Object[]{new Skeleton(new Cache("var"), new Object[]{new Place(1)}), new Skeleton(new Cache("$CUT"), new Object[]{new Place(0)}), new Skeleton(new Cache("current_task"), new Object[]{new Place(2)}), new Skeleton(new Cache("findall"), new Object[]{new Skeleton("sys_including", new Object[]{new Place(3), new Place(4)}), new Skeleton("sys_including", new Object[]{new Place(3), new Place(2), new Place(4)}), new Place(1)})}, 0));
        add(new Clause(0, "sys_fetch_stack", new Object[]{UNDEF_OBJ}, new Object[]{}, -1));
        add(new Clause(7, "try_call_finally", new Object[]{new Place(1), new Place(2), new Place(3)}, new Object[]{new Skeleton(make_defined(new Object[]{new Clause(1, "", new Object[]{new Place(0), UNDEF_OBJ}, new Object[]{new Skeleton(new Cache("call"), new Object[]{new Place(0)})}, -1), new Clause(1, "", new Object[]{UNDEF_OBJ, new Place(0)}, new Object[]{new Skeleton(new Cache("call"), new Object[]{new Place(0)}), new Cache("fail")}, -1)}), new Object[]{new Place(1), new Place(3)}), new Skeleton(new Cache("$MARK"), new Object[]{new Place(4)}), new Skeleton(new Cache("sys_trap"), new Object[]{new Place(2), new Place(5), new Skeleton(",", new Object[]{new Place(3), new Skeleton("sys_raise", new Object[]{new Place(5)})})}), new Skeleton(new Cache("$MARK"), new Object[]{new Place(6)}), new Skeleton(make_defined(new Object[]{new Clause(5, "", new Object[]{new Place(1), new Place(2), new Place(3), new Place(4), UNDEF_OBJ}, new Object[]{new Skeleton(new Cache("=="), new Object[]{new Place(1), new Place(2)}), new Skeleton(new Cache("$CUT"), new Object[]{new Place(0)}), new Skeleton(new Cache("$CUT"), new Object[]{new Place(3)}), new Skeleton(new Cache("call"), new Object[]{new Place(4)})}, 0), new Clause(1, "", new Object[]{UNDEF_OBJ, UNDEF_OBJ, UNDEF_OBJ, new Place(0), UNDEF_OBJ}, new Object[]{new Skeleton(new Cache("call"), new Object[]{new Place(0)})}, -1), new Clause(1, "", new Object[]{UNDEF_OBJ, UNDEF_OBJ, UNDEF_OBJ, UNDEF_OBJ, new Place(0)}, new Object[]{new Skeleton(new Cache("call"), new Object[]{new Place(0)}), new Cache("fail")}, -1)}), new Object[]{new Place(4), new Place(6), new Place(0), new Place(3), new Place(1)})}, 0));
        add(new Clause(2, "ignore", new Object[]{new Place(1)}, new Object[]{new Skeleton(new Cache("call"), new Object[]{new Place(1)}), new Skeleton(new Cache("$CUT"), new Object[]{new Place(0)})}, 0));
        add(new Clause(0, "ignore", new Object[]{UNDEF_OBJ}, new Object[]{}, -1));
        add(new Clause(3, "chain", new Object[]{new Place(0), new Place(1)}, new Object[]{new Skeleton(new Cache("sys_trap"), new Object[]{new Place(0), new Place(2), new Skeleton("sys_chain_error", new Object[]{new Place(2), new Place(1)})}), new Skeleton(new Cache("call"), new Object[]{new Place(1)})}, -1));
        add(new Clause(3, "sys_chain_error", new Object[]{new Place(0), new Place(1)}, new Object[]{new Skeleton(new Cache("sys_trap"), new Object[]{new Place(1), new Place(2), new Skeleton("sys_chain_raise", new Object[]{new Place(0), new Place(2)})}), new Skeleton(new Cache("sys_raise"), new Object[]{new Place(0)})}, -1));
        add(new Clause(1, "sys_chain_error", new Object[]{new Place(0), UNDEF_OBJ}, new Object[]{new Skeleton(new Cache("sys_raise"), new Object[]{new Place(0)})}, -1));
        add(new Clause(3, "sys_chain_raise", new Object[]{new Place(0), new Place(1)}, new Object[]{new Skeleton(new Cache("sys_chain_concat"), new Object[]{new Place(0), new Place(1), new Place(2)}), new Skeleton(new Cache("sys_raise"), new Object[]{new Place(2)})}, -1));
        add(new Clause(5, "sys_chain_concat", new Object[]{new Skeleton("cause", new Object[]{new Place(1), new Place(2)}), new Place(3), new Skeleton("cause", new Object[]{new Place(1), new Place(4)})}, new Object[]{new Skeleton(new Cache("$CUT"), new Object[]{new Place(0)}), new Skeleton(new Cache("sys_chain_concat"), new Object[]{new Place(2), new Place(3), new Place(4)})}, 0));
        add(new Clause(2, "sys_chain_concat", new Object[]{new Place(0), new Place(1), new Skeleton("cause", new Object[]{new Place(0), new Place(1)})}, new Object[]{}, -1));
        add(new Clause(3, "once_cleanup", new Object[]{new Place(1), new Place(2)}, new Object[]{new Frozen(new Cache("current_prolog_flag"), new Object[]{"async_mode", "on"}), new Skeleton(new Cache("$CUT"), new Object[]{new Place(0)}), new Skeleton(new Cache("shield"), new Object[]{new Skeleton("sys_once_cleanup", new Object[]{new Skeleton("unshield", new Object[]{new Place(1)}), new Place(2)})})}, 0));
        add(new Clause(2, "once_cleanup", new Object[]{new Place(0), new Place(1)}, new Object[]{new Skeleton(new Cache("sys_once_cleanup"), new Object[]{new Place(0), new Place(1)})}, -1));
        add(new Clause(4, "setup_once_cleanup", new Object[]{new Place(1), new Place(2), new Place(3)}, new Object[]{new Frozen(new Cache("current_prolog_flag"), new Object[]{"async_mode", "on"}), new Skeleton(new Cache("$CUT"), new Object[]{new Place(0)}), new Skeleton(new Cache("shield"), new Object[]{new Skeleton("sys_setup_once_cleanup", new Object[]{new Place(1), new Skeleton("unshield", new Object[]{new Place(2)}), new Place(3)})})}, 0));
        add(new Clause(3, "setup_once_cleanup", new Object[]{new Place(0), new Place(1), new Place(2)}, new Object[]{new Skeleton(new Cache("sys_setup_once_cleanup"), new Object[]{new Place(0), new Place(1), new Place(2)})}, -1));
        add(new Clause(3, "sys_setup_once_cleanup", new Object[]{new Place(0), new Place(1), new Place(2)}, new Object[]{new Skeleton(new Cache("call"), new Object[]{new Place(0)}), new Skeleton(new Cache("sys_once_cleanup"), new Object[]{new Place(1), new Place(2)})}, -1));
        add(new Clause(3, "sys_once_cleanup", new Object[]{new Place(1), new Place(2)}, new Object[]{new Skeleton(new Cache("chain"), new Object[]{new Place(1), new Skeleton("ignore", new Object[]{new Place(2)})}), new Skeleton(new Cache("$CUT"), new Object[]{new Place(0)})}, 0));
        add(new Clause(1, "sys_once_cleanup", new Object[]{UNDEF_OBJ, new Place(0)}, new Object[]{new Skeleton(new Cache("ignore"), new Object[]{new Place(0)}), new Cache("fail")}, -1));
        add(new Clause(2, "sleep", new Object[]{new Place(0)}, new Object[]{new Skeleton(new Cache("os_sleep_promise"), new Object[]{new Place(0), new Place(1)}), new Skeleton(new Cache("$YIELD"), new Object[]{new Place(1)})}, -1));
        add(new Clause(3, "call_later", new Object[]{new Place(0), new Place(1)}, new Object[]{new Skeleton(new Cache("sys_frost_horn"), new Object[]{new Skeleton(":-", new Object[]{new Place(0)}), 0, new Place(2)}), new Skeleton(new Cache("os_call_later"), new Object[]{new Place(2), new Place(1), UNDEF_OBJ})}, -1));
        add(new Clause(4, "call_later", new Object[]{new Place(0), new Place(1), new Place(2)}, new Object[]{new Skeleton(new Cache("sys_frost_horn"), new Object[]{new Skeleton(":-", new Object[]{new Place(0)}), 0, new Place(3)}), new Skeleton(new Cache("os_call_later"), new Object[]{new Place(3), new Place(1), new Place(2)})}, -1));
        add(new Clause(5, "call_with_time_limit", new Object[]{new Place(1), new Place(2)}, new Object[]{new Frozen(new Cache("current_prolog_flag"), new Object[]{"allow_yield", "on"}), new Skeleton(new Cache("$CUT"), new Object[]{new Place(0)}), new Skeleton(new Cache("current_task"), new Object[]{new Place(3)}), new Skeleton(new Cache("setup_once_cleanup"), new Object[]{new Skeleton("call_later", new Object[]{new Skeleton("sys_timeout_signal", new Object[]{new Place(3)}), new Place(1), new Place(4)}), new Place(2), new Skeleton("timer_cancel", new Object[]{new Place(4)})})}, 0));
        add(new Clause(0, "call_with_time_limit", new Object[]{UNDEF_OBJ, UNDEF_OBJ}, new Object[]{new Skeleton(new Cache("throw"), new Object[]{new Skeleton("error", new Object[]{new Frozen("system_error", new Object[]{"illegal_yield"}), UNDEF_OBJ})})}, -1));
        add(new Clause(1, "sys_timeout_signal", new Object[]{new Place(0)}, new Object[]{new Skeleton(new Cache("task_abort"), new Object[]{new Place(0), new Frozen("system_error", new Object[]{"timelimit_exceeded"})})}, -1));
        add(new Clause(2, "create_task", new Object[]{new Place(0)}, new Object[]{new Skeleton(new Cache("sys_frost_horn"), new Object[]{new Skeleton(":-", new Object[]{new Place(0)}), 0, new Place(1)}), new Skeleton(new Cache("os_task_create"), new Object[]{new Place(1), UNDEF_OBJ})}, -1));
        add(new Clause(3, "create_task", new Object[]{new Place(0), new Place(1)}, new Object[]{new Skeleton(new Cache("sys_frost_horn"), new Object[]{new Skeleton(":-", new Object[]{new Place(0)}), 0, new Place(2)}), new Skeleton(new Cache("os_task_create"), new Object[]{new Place(2), new Place(1)})}, -1));
        add(new Clause(5, "sys_frost_horn", new Object[]{new Place(0), new Place(1), new Place(2)}, new Object[]{new Skeleton(new Cache("sys_trans_horn"), new Object[]{new Place(0), new Place(3), new Place(1)}), new Skeleton(new Cache("sys_encode_horn"), new Object[]{new Place(3), new Place(4), new Place(1)}), new Skeleton(new Cache("sys_host_ossify"), new Object[]{new Place(4), new Place(2)})}, -1));
        add(new Clause(6, "sys_host_ossify", new Object[]{new Skeleton("tr_clause", new Object[]{new Place(0), new Place(1), new Place(2)}), new Place(3)}, new Object[]{new Skeleton(new Cache("=.."), new Object[]{new Place(1), new Skeleton(".", new Object[]{new Place(4), new Place(5)})}), new Skeleton(new Cache("sys_clause_ossify"), new Object[]{new Place(5), new Place(2), new Place(0), new Place(4), new Place(3)})}, -1));
        add(new Clause(3, "sys_host_ossify", new Object[]{new Skeleton("tr_goal", new Object[]{new Place(0), new Place(1)}), new Place(2)}, new Object[]{new Skeleton(new Cache("sys_goal_ossify"), new Object[]{new Place(1), new Place(0), new Place(2)})}, -1));
        add(new Clause(3, "member", new Object[]{new Place(0), new Skeleton(".", new Object[]{new Place(1), new Place(2)})}, new Object[]{new Skeleton(new Cache("sys_member"), new Object[]{new Place(2), new Place(1), new Place(0)})}, -1));
        add(new Clause(1, "sys_member", new Object[]{UNDEF_OBJ, new Place(0), new Place(0)}, new Object[]{}, -1));
        add(new Clause(3, "sys_member", new Object[]{new Skeleton(".", new Object[]{new Place(0), new Place(1)}), UNDEF_OBJ, new Place(2)}, new Object[]{new Skeleton(new Cache("sys_member"), new Object[]{new Place(1), new Place(0), new Place(2)})}, -1));
        add(new Clause(4, "select", new Object[]{new Place(0), new Skeleton(".", new Object[]{new Place(1), new Place(2)}), new Place(3)}, new Object[]{new Skeleton(new Cache("sys_select"), new Object[]{new Place(2), new Place(1), new Place(0), new Place(3)})}, -1));
        add(new Clause(2, "sys_select", new Object[]{new Place(0), new Place(1), new Place(1), new Place(0)}, new Object[]{}, -1));
        add(new Clause(5, "sys_select", new Object[]{new Skeleton(".", new Object[]{new Place(0), new Place(1)}), new Place(2), new Place(3), new Skeleton(".", new Object[]{new Place(2), new Place(4)})}, new Object[]{new Skeleton(new Cache("sys_select"), new Object[]{new Place(1), new Place(0), new Place(3), new Place(4)})}, -1));
        add(new Clause(2, "reverse", new Object[]{new Place(0), new Place(1)}, new Object[]{new Skeleton(new Cache("sys_reverse"), new Object[]{new Place(0), "[]", new Place(1)})}, -1));
        add(new Clause(1, "sys_reverse", new Object[]{"[]", new Place(0), new Place(0)}, new Object[]{}, -1));
        add(new Clause(4, "sys_reverse", new Object[]{new Skeleton(".", new Object[]{new Place(0), new Place(1)}), new Place(2), new Place(3)}, new Object[]{new Skeleton(new Cache("sys_reverse"), new Object[]{new Place(1), new Skeleton(".", new Object[]{new Place(0), new Place(2)}), new Place(3)})}, -1));
        add(new Clause(1, "append", new Object[]{"[]", new Place(0), new Place(0)}, new Object[]{}, -1));
        add(new Clause(4, "append", new Object[]{new Skeleton(".", new Object[]{new Place(0), new Place(1)}), new Place(2), new Skeleton(".", new Object[]{new Place(0), new Place(3)})}, new Object[]{new Skeleton(new Cache("append"), new Object[]{new Place(1), new Place(2), new Place(3)})}, -1));
        add(new Clause(3, "length", new Object[]{new Place(1), new Place(2)}, new Object[]{new Skeleton(new Cache("var"), new Object[]{new Place(2)}), new Skeleton(new Cache("$CUT"), new Object[]{new Place(0)}), new Skeleton(new Cache("sys_length"), new Object[]{new Place(1), 0, new Place(2)})}, 0));
        add(new Clause(2, "length", new Object[]{new Place(0), new Place(1)}, new Object[]{new Skeleton(new Cache("must_be"), new Object[]{"integer", new Place(1)}), new Skeleton(new Cache(">="), new Object[]{new Place(1), 0}), new Skeleton(new Cache("sys_length"), new Object[]{new Place(1), new Place(0)})}, -1));
        add(new Clause(1, "sys_length", new Object[]{"[]", new Place(0), new Place(0)}, new Object[]{}, -1));
        add(new Clause(4, "sys_length", new Object[]{new Skeleton(".", new Object[]{UNDEF_OBJ, new Place(0)}), new Place(1), new Place(2)}, new Object[]{new Skeleton(new Cache("is"), new Object[]{new Place(3), new Skeleton(new Cache("+"), new Object[]{new Place(1), 1})}), new Skeleton(new Cache("sys_length"), new Object[]{new Place(0), new Place(3), new Place(2)})}, -1));
        add(new Clause(2, "sys_length", new Object[]{0, new Place(1)}, new Object[]{new Skeleton(new Cache("$CUT"), new Object[]{new Place(0)}), new Skeleton(new Cache("="), new Object[]{new Place(1), "[]"})}, 0));
        add(new Clause(3, "sys_length", new Object[]{new Place(0), new Skeleton(".", new Object[]{UNDEF_OBJ, new Place(1)})}, new Object[]{new Skeleton(new Cache("is"), new Object[]{new Place(2), new Skeleton(new Cache("-"), new Object[]{new Place(0), 1})}), new Skeleton(new Cache("sys_length"), new Object[]{new Place(2), new Place(1)})}, -1));
        add(new Clause(4, "between", new Object[]{new Place(1), new Place(2), new Place(3)}, new Object[]{new Skeleton(new Cache("var"), new Object[]{new Place(3)}), new Skeleton(new Cache("$CUT"), new Object[]{new Place(0)}), new Skeleton(new Cache("must_be"), new Object[]{"integer", new Place(1)}), new Skeleton(new Cache("must_be"), new Object[]{"integer", new Place(2)}), new Skeleton(new Cache("=<"), new Object[]{new Place(1), new Place(2)}), new Skeleton(new Cache("sys_between"), new Object[]{new Place(1), new Place(2), new Place(3)})}, 0));
        add(new Clause(3, "between", new Object[]{new Place(0), new Place(1), new Place(2)}, new Object[]{new Skeleton(new Cache("must_be"), new Object[]{"integer", new Place(2)}), new Skeleton(new Cache("must_be"), new Object[]{"integer", new Place(0)}), new Skeleton(new Cache("must_be"), new Object[]{"integer", new Place(1)}), new Skeleton(new Cache("=<"), new Object[]{new Place(0), new Place(2)}), new Skeleton(new Cache("=<"), new Object[]{new Place(2), new Place(1)})}, -1));
        add(new Clause(3, "sys_between", new Object[]{new Place(1), new Place(1), new Place(2)}, new Object[]{new Skeleton(new Cache("$CUT"), new Object[]{new Place(0)}), new Skeleton(new Cache("="), new Object[]{new Place(1), new Place(2)})}, 0));
        add(new Clause(1, "sys_between", new Object[]{new Place(0), UNDEF_OBJ, new Place(0)}, new Object[]{}, -1));
        add(new Clause(4, "sys_between", new Object[]{new Place(0), new Place(1), new Place(2)}, new Object[]{new Skeleton(new Cache("is"), new Object[]{new Place(3), new Skeleton(new Cache("+"), new Object[]{new Place(0), 1})}), new Skeleton(new Cache("sys_between"), new Object[]{new Place(3), new Place(1), new Place(2)})}, -1));
        add(new Clause(4, "findall", new Object[]{new Place(0), new Place(1), new Place(2)}, new Object[]{new Skeleton(new Cache("sys_find_init"), new Object[]{new Place(3)}), new Skeleton(make_defined(new Object[]{new Clause(3, "", new Object[]{new Place(0), new Place(1), new Place(2)}, new Object[]{new Skeleton(new Cache("call"), new Object[]{new Place(0)}), new Skeleton(new Cache("sys_find_next"), new Object[]{new Place(1), new Place(2)}), new Cache("fail")}, -1), new Clause(0, "", new Object[]{UNDEF_OBJ, UNDEF_OBJ, UNDEF_OBJ}, new Object[]{}, -1)}), new Object[]{new Place(1), new Place(0), new Place(3)}), new Skeleton(new Cache("sys_find_fini"), new Object[]{new Place(3), new Place(2)})}, -1));
        add(new Clause(2, "sys_find_init", new Object[]{new Place(0)}, new Object[]{new Skeleton(new Cache("=.."), new Object[]{new Place(1), new Frozen(".", new Object[]{".", new Frozen(".", new Object[]{"-", new Frozen(".", new Object[]{"[]", "[]"})})})}), new Skeleton(new Cache("="), new Object[]{new Place(0), new Skeleton("v", new Object[]{new Place(1), new Place(1)})})}, -1));
        add(new Clause(4, "sys_find_next", new Object[]{new Place(0), new Place(1)}, new Object[]{new Skeleton(new Cache("copy_term"), new Object[]{new Skeleton(".", new Object[]{new Place(0), "[]"}), new Place(2)}), new Skeleton(new Cache("arg"), new Object[]{1, new Place(1), new Place(3)}), new Skeleton(new Cache("change_arg"), new Object[]{2, new Place(3), new Place(2)}), new Skeleton(new Cache("change_arg"), new Object[]{1, new Place(1), new Place(2)})}, -1));
        add(new Clause(1, "sys_find_fini", new Object[]{new Skeleton("v", new Object[]{UNDEF_OBJ, new Skeleton(".", new Object[]{UNDEF_OBJ, new Place(0)})}), new Place(0)}, new Object[]{}, -1));
        add(new Clause(4, "get_message", new Object[]{new Place(0), new Place(1), new Place(2)}, new Object[]{new Skeleton(new Cache("current_prolog_flag"), new Object[]{"sys_locale", new Place(3)}), new Skeleton(new Cache("get_message"), new Object[]{new Place(0), new Place(3), new Place(1), new Place(2)})}, -1));
        add(new Clause(6, "get_message", new Object[]{new Place(1), new Place(2), new Place(3), new Place(4)}, new Object[]{new Skeleton(new Cache("=.."), new Object[]{new Place(1), new Skeleton(".", new Object[]{new Place(5), new Place(4)})}), new Skeleton(new Cache("atom"), new Object[]{new Place(5)}), new Skeleton(new Cache("sys_get_string"), new Object[]{new Place(5), new Place(2), new Place(3)}), new Skeleton(new Cache("$CUT"), new Object[]{new Place(0)})}, 0));
        add(new Clause(8, "get_message", new Object[]{new Place(1), new Place(2), new Place(3), new Place(4)}, new Object[]{new Skeleton(new Cache("=.."), new Object[]{new Place(1), new Skeleton(".", new Object[]{new Place(5), new Skeleton(".", new Object[]{new Place(6), new Place(4)})})}), new Skeleton(new Cache("atom"), new Object[]{new Place(5)}), new Skeleton(new Cache("atom"), new Object[]{new Place(6)}), new Skeleton(new Cache("atom_join"), new Object[]{new Skeleton(".", new Object[]{new Place(5), new Skeleton(".", new Object[]{".", new Skeleton(".", new Object[]{new Place(6), "[]"})})}), new Place(7)}), new Skeleton(new Cache("sys_get_string"), new Object[]{new Place(7), new Place(2), new Place(3)}), new Skeleton(new Cache("$CUT"), new Object[]{new Place(0)})}, 0));
        add(new Clause(9, "get_message", new Object[]{new Place(1), new Place(2), new Place(3), new Place(4)}, new Object[]{new Skeleton(new Cache("=.."), new Object[]{new Place(1), new Skeleton(".", new Object[]{new Place(5), new Skeleton(".", new Object[]{new Place(6), new Skeleton(".", new Object[]{new Place(7), new Place(4)})})})}), new Skeleton(new Cache("atom"), new Object[]{new Place(5)}), new Skeleton(new Cache("atom"), new Object[]{new Place(6)}), new Skeleton(new Cache("atom"), new Object[]{new Place(7)}), new Skeleton(new Cache("atom_join"), new Object[]{new Skeleton(".", new Object[]{new Place(5), new Skeleton(".", new Object[]{".", new Skeleton(".", new Object[]{new Place(6), new Skeleton(".", new Object[]{".", new Skeleton(".", new Object[]{new Place(7), "[]"})})})})}), new Place(8)}), new Skeleton(new Cache("sys_get_string"), new Object[]{new Place(8), new Place(2), new Place(3)}), new Skeleton(new Cache("$CUT"), new Object[]{new Place(0)})}, 0));
        add(new Clause(3, "sys_get_string", new Object[]{new Place(0), new Place(1)}, new Object[]{new Skeleton(new Cache("current_prolog_flag"), new Object[]{"sys_locale", new Place(2)}), new Skeleton(new Cache("sys_get_string"), new Object[]{new Place(0), new Place(2), new Place(1)})}, -1));
        add(new Clause(6, "sys_get_string", new Object[]{new Place(1), new Place(2), new Place(3)}, new Object[]{new Skeleton(new Cache("sys_locale_ancestor"), new Object[]{new Place(2), new Place(4)}), new Skeleton(new Cache("strings"), new Object[]{new Place(1), new Place(4), new Place(5)}), new Skeleton(new Cache("$CUT"), new Object[]{new Place(0)}), new Skeleton(new Cache("="), new Object[]{new Place(3), new Place(5)})}, 0));
        add(new Clause(1, "sys_locale_ancestor", new Object[]{new Place(0), new Place(0)}, new Object[]{}, -1));
        add(new Clause(3, "sys_locale_ancestor", new Object[]{new Place(0), new Place(1)}, new Object[]{new Skeleton(new Cache("last_sub_atom"), new Object[]{new Place(0), new Place(2), UNDEF_OBJ, UNDEF_OBJ, "_"}), new Skeleton(new Cache("sub_atom"), new Object[]{new Place(0), 0, new Place(2), UNDEF_OBJ, new Place(1)})}, -1));
        add(new Clause(1, "sys_locale_ancestor", new Object[]{new Place(0), ""}, new Object[]{new Skeleton(new Cache("\\=="), new Object[]{new Place(0), ""})}, -1));
        add(new Clause(5, "sys_multiton_keys", new Object[]{new Skeleton(".", new Object[]{new Skeleton("=", new Object[]{new Place(1), UNDEF_OBJ}), new Place(2)}), new Place(3), new Place(4)}, new Object[]{new Skeleton(make_defined(new Object[]{new Clause(2, "", new Object[]{new Place(1)}, new Object[]{new Skeleton(new Cache("sys_marked_at"), new Object[]{new Place(1), 0, new Frozen(".", new Object[]{23, "[]"})}), new Skeleton(new Cache("$CUT"), new Object[]{new Place(0)}), new Cache("fail")}, 0), new Clause(0, "", new Object[]{UNDEF_OBJ}, new Object[]{}, -1)}), new Object[]{new Place(1)}), new Skeleton(new Cache("$CUT"), new Object[]{new Place(0)}), new Skeleton(new Cache("sys_multiton_keys"), new Object[]{new Place(2), new Place(3), new Place(4)})}, 0));
        add(new Clause(5, "sys_multiton_keys", new Object[]{new Skeleton(".", new Object[]{new Skeleton("=", new Object[]{new Place(1), UNDEF_OBJ}), new Place(2)}), new Place(3), new Place(4)}, new Object[]{new Skeleton(make_defined(new Object[]{new Clause(2, "", new Object[]{new Place(1)}, new Object[]{new Skeleton(new Cache("sys_marked_at"), new Object[]{new Place(1), 1, new Frozen(".", new Object[]{1, new Frozen(".", new Object[]{3, new Frozen(".", new Object[]{23, "[]"})})})}), new Skeleton(new Cache("$CUT"), new Object[]{new Place(0)}), new Cache("fail")}, 0), new Clause(0, "", new Object[]{UNDEF_OBJ}, new Object[]{}, -1)}), new Object[]{new Place(1)}), new Skeleton(new Cache("$CUT"), new Object[]{new Place(0)}), new Skeleton(new Cache("sys_multiton_keys"), new Object[]{new Place(2), new Place(3), new Place(4)})}, 0));
        add(new Clause(5, "sys_multiton_keys", new Object[]{new Skeleton(".", new Object[]{new Skeleton("=", new Object[]{new Place(1), UNDEF_OBJ}), new Place(2)}), new Place(3), new Place(4)}, new Object[]{new Skeleton(new Cache("member"), new Object[]{new Skeleton("=", new Object[]{new Place(1), UNDEF_OBJ}), new Place(3)}), new Skeleton(new Cache("$CUT"), new Object[]{new Place(0)}), new Skeleton(new Cache("sys_multiton_keys"), new Object[]{new Place(2), new Place(3), new Place(4)})}, 0));
        add(new Clause(4, "sys_multiton_keys", new Object[]{new Skeleton(".", new Object[]{new Skeleton("=", new Object[]{new Place(0), UNDEF_OBJ}), new Place(1)}), new Place(2), new Skeleton(".", new Object[]{new Place(0), new Place(3)})}, new Object[]{new Skeleton(new Cache("sys_multiton_keys"), new Object[]{new Place(1), new Place(2), new Place(3)})}, -1));
        add(new Clause(0, "sys_multiton_keys", new Object[]{"[]", UNDEF_OBJ, "[]"}, new Object[]{}, -1));
        add(new Clause(3, "sys_multiton_check", new Object[]{new Skeleton(".", new Object[]{new Place(0), new Place(1)})}, new Object[]{new Skeleton(new Cache("="), new Object[]{new Place(2), new Skeleton("warning", new Object[]{new Skeleton("syntax_error", new Object[]{"multiton_var", new Skeleton(".", new Object[]{new Place(0), new Place(1)})}), UNDEF_OBJ})}), new Skeleton(new Cache("sys_fill_stack"), new Object[]{new Place(2)}), new Skeleton(new Cache("sys_print_error"), new Object[]{new Place(2)})}, -1));
        add(new Clause(0, "sys_multiton_check", new Object[]{"[]"}, new Object[]{}, -1));
        add(new Clause(4, "sys_singleton_keys", new Object[]{new Skeleton(".", new Object[]{new Skeleton("=", new Object[]{new Place(1), UNDEF_OBJ}), new Place(2)}), new Place(3)}, new Object[]{new Skeleton(new Cache("sys_marked_at"), new Object[]{new Place(1), 0, new Frozen(".", new Object[]{23, "[]"})}), new Skeleton(new Cache("$CUT"), new Object[]{new Place(0)}), new Skeleton(new Cache("sys_singleton_keys"), new Object[]{new Place(2), new Place(3)})}, 0));
        add(new Clause(3, "sys_singleton_keys", new Object[]{new Skeleton(".", new Object[]{new Skeleton("=", new Object[]{new Place(0), UNDEF_OBJ}), new Place(1)}), new Skeleton(".", new Object[]{new Place(0), new Place(2)})}, new Object[]{new Skeleton(new Cache("sys_singleton_keys"), new Object[]{new Place(1), new Place(2)})}, -1));
        add(new Clause(0, "sys_singleton_keys", new Object[]{"[]", "[]"}, new Object[]{}, -1));
        add(new Clause(3, "sys_singleton_check", new Object[]{new Skeleton(".", new Object[]{new Place(0), new Place(1)})}, new Object[]{new Skeleton(new Cache("="), new Object[]{new Place(2), new Skeleton("warning", new Object[]{new Skeleton("syntax_error", new Object[]{"singleton_var", new Skeleton(".", new Object[]{new Place(0), new Place(1)})}), UNDEF_OBJ})}), new Skeleton(new Cache("sys_fill_stack"), new Object[]{new Place(2)}), new Skeleton(new Cache("sys_print_error"), new Object[]{new Place(2)})}, -1));
        add(new Clause(0, "sys_singleton_check", new Object[]{"[]"}, new Object[]{}, -1));
        add(new Clause(7, "sys_marked_at", new Object[]{new Place(1), new Place(2), new Place(3)}, new Object[]{new Skeleton(new Cache("sub_atom"), new Object[]{new Place(1), new Place(2), 1, UNDEF_OBJ, new Place(4)}), new Skeleton(new Cache("char_code"), new Object[]{new Place(4), new Place(5)}), new Skeleton(new Cache("code_category"), new Object[]{new Place(5), new Place(6)}), new Skeleton(new Cache("member"), new Object[]{new Place(6), new Place(3)}), new Skeleton(new Cache("$CUT"), new Object[]{new Place(0)})}, 0));
        add(new Clause(6, "expand_term", new Object[]{new Place(1), new Skeleton(".", new Object[]{new Place(2), new Place(3)})}, new Object[]{new Skeleton(new Cache("nonvar"), new Object[]{new Place(1)}), new Skeleton(new Cache("="), new Object[]{new Place(1), new Skeleton(".", new Object[]{new Place(4), new Place(5)})}), new Skeleton(new Cache("$CUT"), new Object[]{new Place(0)}), new Skeleton(new Cache("expand_term"), new Object[]{new Place(4), new Place(2)}), new Skeleton(new Cache("expand_term"), new Object[]{new Place(5), new Place(3)})}, 0));
        add(new Clause(2, "expand_term", new Object[]{new Place(1), "[]"}, new Object[]{new Skeleton(new Cache("nonvar"), new Object[]{new Place(1)}), new Skeleton(new Cache("="), new Object[]{new Place(1), "[]"}), new Skeleton(new Cache("$CUT"), new Object[]{new Place(0)})}, 0));
        add(new Clause(4, "expand_term", new Object[]{new Place(1), new Place(2)}, new Object[]{new Skeleton(new Cache("term_expansion"), new Object[]{new Place(1), new Place(3)}), new Skeleton(new Cache("$CUT"), new Object[]{new Place(0)}), new Skeleton(new Cache("expand_term"), new Object[]{new Place(3), new Place(2)})}, 0));
        add(new Clause(1, "expand_term", new Object[]{new Place(0), new Place(0)}, new Object[]{}, -1));
        add(new Clause(1, "phrase", new Object[]{new Place(0), UNDEF_OBJ, UNDEF_OBJ}, new Object[]{new Skeleton(new Cache("var"), new Object[]{new Place(0)}), new Skeleton(new Cache("throw"), new Object[]{new Skeleton("error", new Object[]{"instantiation_error", UNDEF_OBJ})})}, -1));
        add(new Clause(4, "phrase", new Object[]{new Place(0), new Place(1), new Place(2)}, new Object[]{new Skeleton(new Cache("sys_phrase_expansion"), new Object[]{new Place(0), 0, 0, new Place(1), new Place(2), new Place(3)}), new Skeleton(new Cache("call"), new Object[]{new Place(3)})}, -1));
        add(new Clause(4, "term_expansion", new Object[]{new Place(0), new Place(1)}, new Object[]{new Skeleton(new Cache("nonvar"), new Object[]{new Place(0)}), new Skeleton(new Cache("="), new Object[]{new Place(0), new Skeleton("-->", new Object[]{new Place(2), new Place(3)})}), new Skeleton(new Cache("sys_dcg_expansion"), new Object[]{new Place(2), new Place(3), new Place(1)})}, -1));
        add(new Clause(10, "sys_dcg_expansion", new Object[]{new Place(0), new Place(1), new Skeleton(":-", new Object[]{new Place(2), new Skeleton(",", new Object[]{new Place(3), new Place(4)})})}, new Object[]{new Skeleton(new Cache("nonvar"), new Object[]{new Place(0)}), new Skeleton(new Cache("="), new Object[]{new Place(0), new Skeleton(",", new Object[]{new Place(5), new Place(6)})}), new Skeleton(new Cache("sys_phrase_expansion"), new Object[]{new Place(5), 0, 0, new Place(7), new Place(8), new Place(2)}), new Skeleton(new Cache("sys_phrase_expansion"), new Object[]{new Place(1), 1, 0, new Place(7), new Place(9), new Place(3)}), new Skeleton(new Cache("sys_phrase_expansion"), new Object[]{new Place(6), 0, 0, new Place(8), new Place(9), new Place(4)})}, -1));
        add(new Clause(6, "sys_dcg_expansion", new Object[]{new Place(0), new Place(1), new Skeleton(":-", new Object[]{new Place(2), new Place(3)})}, new Object[]{new Skeleton(new Cache("sys_phrase_expansion"), new Object[]{new Place(0), 0, 0, new Place(4), new Place(5), new Place(2)}), new Skeleton(new Cache("sys_phrase_expansion"), new Object[]{new Place(1), 1, 0, new Place(4), new Place(5), new Place(3)})}, -1));
        add(new Clause(4, "sys_phrase_expansion", new Object[]{new Place(1), UNDEF_OBJ, UNDEF_OBJ, new Place(2), new Place(3), new Skeleton("phrase", new Object[]{new Place(1), new Place(2), new Place(3)})}, new Object[]{new Skeleton(new Cache("var"), new Object[]{new Place(1)}), new Skeleton(new Cache("$CUT"), new Object[]{new Place(0)})}, 0));
        add(new Clause(10, "sys_phrase_expansion", new Object[]{new Skeleton(",", new Object[]{new Place(1), new Place(2)}), new Place(3), new Place(4), new Place(5), new Place(6), new Skeleton(",", new Object[]{new Place(7), new Place(8)})}, new Object[]{new Skeleton(new Cache("$CUT"), new Object[]{new Place(0)}), new Skeleton(new Cache("sys_phrase_expansion"), new Object[]{new Place(1), new Place(3), 1, new Place(5), new Place(9), new Place(7)}), new Skeleton(new Cache("sys_phrase_expansion"), new Object[]{new Place(2), 0, new Place(4), new Place(9), new Place(6), new Place(8)})}, 0));
        add(new Clause(7, "sys_phrase_expansion", new Object[]{new Skeleton(";", new Object[]{new Place(1), new Place(2)}), UNDEF_OBJ, UNDEF_OBJ, new Place(3), new Place(4), new Skeleton(";", new Object[]{new Place(5), new Place(6)})}, new Object[]{new Skeleton(new Cache("$CUT"), new Object[]{new Place(0)}), new Skeleton(new Cache("sys_phrase_expansion"), new Object[]{new Place(1), 0, 0, new Place(3), new Place(4), new Place(5)}), new Skeleton(new Cache("sys_phrase_expansion"), new Object[]{new Place(2), 0, 0, new Place(3), new Place(4), new Place(6)})}, 0));
        add(new Clause(10, "sys_phrase_expansion", new Object[]{new Skeleton("->", new Object[]{new Place(1), new Place(2)}), new Place(3), new Place(4), new Place(5), new Place(6), new Skeleton("->", new Object[]{new Place(7), new Place(8)})}, new Object[]{new Skeleton(new Cache("$CUT"), new Object[]{new Place(0)}), new Skeleton(new Cache("sys_phrase_expansion"), new Object[]{new Place(1), new Place(3), 1, new Place(5), new Place(9), new Place(7)}), new Skeleton(new Cache("sys_phrase_expansion"), new Object[]{new Place(2), 0, new Place(4), new Place(9), new Place(6), new Place(8)})}, 0));
        add(new Clause(3, "sys_phrase_expansion", new Object[]{"[]", 0, UNDEF_OBJ, new Place(1), new Place(2), new Skeleton("=", new Object[]{new Place(1), new Place(2)})}, new Object[]{new Skeleton(new Cache("$CUT"), new Object[]{new Place(0)})}, 0));
        add(new Clause(3, "sys_phrase_expansion", new Object[]{"[]", 1, UNDEF_OBJ, new Place(1), new Place(2), "true"}, new Object[]{new Skeleton(new Cache("$CUT"), new Object[]{new Place(0)}), new Skeleton(new Cache("="), new Object[]{new Place(1), new Place(2)})}, 0));
        add(new Clause(6, "sys_phrase_expansion", new Object[]{new Skeleton(".", new Object[]{new Place(1), new Place(2)}), 0, UNDEF_OBJ, new Place(3), new Place(4), new Skeleton("=", new Object[]{new Place(3), new Skeleton(".", new Object[]{new Place(1), new Place(5)})})}, new Object[]{new Skeleton(new Cache("$CUT"), new Object[]{new Place(0)}), new Skeleton(new Cache("sys_list_expansion"), new Object[]{new Place(2), new Place(4), new Place(5)})}, 0));
        add(new Clause(6, "sys_phrase_expansion", new Object[]{new Skeleton(".", new Object[]{new Place(1), new Place(2)}), 1, UNDEF_OBJ, new Place(3), new Place(4), "true"}, new Object[]{new Skeleton(new Cache("$CUT"), new Object[]{new Place(0)}), new Skeleton(new Cache("="), new Object[]{new Place(3), new Skeleton(".", new Object[]{new Place(1), new Place(5)})}), new Skeleton(new Cache("sys_list_expansion"), new Object[]{new Place(2), new Place(4), new Place(5)})}, 0));
        add(new Clause(3, "sys_phrase_expansion", new Object[]{"!", UNDEF_OBJ, 0, new Place(1), new Place(2), new Skeleton(",", new Object[]{"!", new Skeleton("=", new Object[]{new Place(1), new Place(2)})})}, new Object[]{new Skeleton(new Cache("$CUT"), new Object[]{new Place(0)})}, 0));
        add(new Clause(3, "sys_phrase_expansion", new Object[]{"!", UNDEF_OBJ, 1, new Place(1), new Place(2), "!"}, new Object[]{new Skeleton(new Cache("$CUT"), new Object[]{new Place(0)}), new Skeleton(new Cache("="), new Object[]{new Place(1), new Place(2)})}, 0));
        add(new Clause(4, "sys_phrase_expansion", new Object[]{new Skeleton("{}", new Object[]{new Place(1)}), UNDEF_OBJ, 0, new Place(2), new Place(3), new Skeleton(",", new Object[]{new Place(1), new Skeleton("=", new Object[]{new Place(2), new Place(3)})})}, new Object[]{new Skeleton(new Cache("$CUT"), new Object[]{new Place(0)})}, 0));
        add(new Clause(4, "sys_phrase_expansion", new Object[]{new Skeleton("{}", new Object[]{new Place(1)}), UNDEF_OBJ, 1, new Place(2), new Place(3), new Place(1)}, new Object[]{new Skeleton(new Cache("$CUT"), new Object[]{new Place(0)}), new Skeleton(new Cache("="), new Object[]{new Place(2), new Place(3)})}, 0));
        add(new Clause(5, "sys_phrase_expansion", new Object[]{new Skeleton("\\+", new Object[]{new Place(1)}), UNDEF_OBJ, 0, new Place(2), new Place(3), new Skeleton(",", new Object[]{new Skeleton("\\+", new Object[]{new Place(4)}), new Skeleton("=", new Object[]{new Place(2), new Place(3)})})}, new Object[]{new Skeleton(new Cache("$CUT"), new Object[]{new Place(0)}), new Skeleton(new Cache("sys_phrase_expansion"), new Object[]{new Place(1), 0, 0, new Place(2), UNDEF_OBJ, new Place(4)})}, 0));
        add(new Clause(5, "sys_phrase_expansion", new Object[]{new Skeleton("\\+", new Object[]{new Place(1)}), UNDEF_OBJ, 1, new Place(2), new Place(3), new Skeleton("\\+", new Object[]{new Place(4)})}, new Object[]{new Skeleton(new Cache("$CUT"), new Object[]{new Place(0)}), new Skeleton(new Cache("="), new Object[]{new Place(2), new Place(3)}), new Skeleton(new Cache("sys_phrase_expansion"), new Object[]{new Place(1), 0, 0, new Place(2), UNDEF_OBJ, new Place(4)})}, 0));
        add(new Clause(8, "sys_phrase_expansion", new Object[]{new Place(1), UNDEF_OBJ, UNDEF_OBJ, new Place(2), new Place(3), new Place(4)}, new Object[]{new Skeleton(new Cache("callable"), new Object[]{new Place(1)}), new Skeleton(new Cache("$CUT"), new Object[]{new Place(0)}), new Skeleton(new Cache("=.."), new Object[]{new Place(1), new Skeleton(".", new Object[]{new Place(5), new Place(6)})}), new Skeleton(new Cache("append"), new Object[]{new Place(6), new Skeleton(".", new Object[]{new Place(2), new Skeleton(".", new Object[]{new Place(3), "[]"})}), new Place(7)}), new Skeleton(new Cache("=.."), new Object[]{new Place(4), new Skeleton(".", new Object[]{new Place(5), new Place(7)})})}, 0));
        add(new Clause(1, "sys_phrase_expansion", new Object[]{new Place(0), UNDEF_OBJ, UNDEF_OBJ, UNDEF_OBJ, UNDEF_OBJ, UNDEF_OBJ}, new Object[]{new Skeleton(new Cache("throw"), new Object[]{new Skeleton("error", new Object[]{new Skeleton("type_error", new Object[]{"callable", new Place(0)}), UNDEF_OBJ})})}, -1));
        add(new Clause(1, "sys_list_expansion", new Object[]{new Place(0), UNDEF_OBJ, UNDEF_OBJ}, new Object[]{new Skeleton(new Cache("var"), new Object[]{new Place(0)}), new Skeleton(new Cache("throw"), new Object[]{new Skeleton("error", new Object[]{"instantiation_error", UNDEF_OBJ})})}, -1));
        add(new Clause(2, "sys_list_expansion", new Object[]{"[]", new Place(1), new Place(1)}, new Object[]{new Skeleton(new Cache("$CUT"), new Object[]{new Place(0)})}, 0));
        add(new Clause(5, "sys_list_expansion", new Object[]{new Skeleton(".", new Object[]{new Place(1), new Place(2)}), new Place(3), new Skeleton(".", new Object[]{new Place(1), new Place(4)})}, new Object[]{new Skeleton(new Cache("$CUT"), new Object[]{new Place(0)}), new Skeleton(new Cache("sys_list_expansion"), new Object[]{new Place(2), new Place(3), new Place(4)})}, 0));
        add(new Clause(1, "sys_list_expansion", new Object[]{new Place(0), UNDEF_OBJ, UNDEF_OBJ}, new Object[]{new Skeleton(new Cache("throw"), new Object[]{new Skeleton("error", new Object[]{new Skeleton("type_error", new Object[]{"list", new Place(0)}), UNDEF_OBJ})})}, -1));
        add(new Clause(8, "sub_atom", new Object[]{new Place(1), new Place(2), new Place(3), new Place(4), new Place(5)}, new Object[]{new Skeleton(new Cache("var"), new Object[]{new Place(2)}), new Skeleton(new Cache("var"), new Object[]{new Place(3)}), new Skeleton(new Cache("var"), new Object[]{new Place(4)}), new Skeleton(new Cache("var"), new Object[]{new Place(5)}), new Skeleton(new Cache("$CUT"), new Object[]{new Place(0)}), new Skeleton(new Cache("atom_length"), new Object[]{new Place(1), new Place(6)}), new Skeleton(new Cache("between"), new Object[]{0, new Place(6), new Place(2)}), new Skeleton(new Cache("is"), new Object[]{new Place(7), new Skeleton(new Cache("-"), new Object[]{new Place(6), new Place(2)})}), new Skeleton(new Cache("between"), new Object[]{0, new Place(7), new Place(3)}), new Skeleton(new Cache("sys_atom_part"), new Object[]{new Place(1), new Place(2), new Place(3), new Place(5)}), new Skeleton(new Cache("is"), new Object[]{new Place(4), new Skeleton(new Cache("-"), new Object[]{new Place(7), new Place(3)})})}, 0));
        add(new Clause(7, "sub_atom", new Object[]{new Place(1), new Place(2), new Place(3), new Place(4), new Place(5)}, new Object[]{new Skeleton(new Cache("var"), new Object[]{new Place(2)}), new Skeleton(new Cache("var"), new Object[]{new Place(4)}), new Skeleton(new Cache("var"), new Object[]{new Place(5)}), new Skeleton(new Cache("$CUT"), new Object[]{new Place(0)}), new Skeleton(new Cache("atom_length"), new Object[]{new Place(1), new Place(6)}), new Skeleton(new Cache("sys_atom_part"), new Object[]{new Place(1), new Place(2), new Place(3), new Place(5)}), new Skeleton(new Cache("is"), new Object[]{new Place(4), new Skeleton(new Cache("-"), new Object[]{new Skeleton(new Cache("-"), new Object[]{new Place(6), new Place(2)}), new Place(3)})})}, 0));
        add(new Clause(7, "sub_atom", new Object[]{new Place(1), new Place(2), new Place(3), new Place(4), new Place(5)}, new Object[]{new Skeleton(new Cache("var"), new Object[]{new Place(2)}), new Skeleton(new Cache("var"), new Object[]{new Place(4)}), new Skeleton(new Cache("$CUT"), new Object[]{new Place(0)}), new Skeleton(new Cache("atom_length"), new Object[]{new Place(5), new Place(3)}), new Skeleton(new Cache("atom_length"), new Object[]{new Place(1), new Place(6)}), new Skeleton(new Cache("sys_atom_match"), new Object[]{new Place(1), new Place(5), new Place(2)}), new Skeleton(new Cache("is"), new Object[]{new Place(4), new Skeleton(new Cache("-"), new Object[]{new Skeleton(new Cache("-"), new Object[]{new Place(6), new Place(2)}), new Place(3)})})}, 0));
        add(new Clause(8, "sub_atom", new Object[]{new Place(1), new Place(2), new Place(3), new Place(4), new Place(5)}, new Object[]{new Skeleton(new Cache("var"), new Object[]{new Place(2)}), new Skeleton(new Cache("var"), new Object[]{new Place(3)}), new Skeleton(new Cache("var"), new Object[]{new Place(5)}), new Skeleton(new Cache("$CUT"), new Object[]{new Place(0)}), new Skeleton(new Cache("atom_length"), new Object[]{new Place(1), new Place(6)}), new Skeleton(new Cache("=<"), new Object[]{0, new Place(4)}), new Skeleton(new Cache("=<"), new Object[]{new Place(4), new Place(6)}), new Skeleton(new Cache("is"), new Object[]{new Place(7), new Skeleton(new Cache("-"), new Object[]{new Place(6), new Place(4)})}), new Skeleton(new Cache("between"), new Object[]{0, new Place(7), new Place(2)}), new Skeleton(new Cache("is"), new Object[]{new Place(3), new Skeleton(new Cache("-"), new Object[]{new Place(7), new Place(2)})}), new Skeleton(new Cache("sys_atom_part"), new Object[]{new Place(1), new Place(2), new Place(3), new Place(5)})}, 0));
        add(new Clause(7, "sub_atom", new Object[]{new Place(1), new Place(2), new Place(3), new Place(4), new Place(5)}, new Object[]{new Skeleton(new Cache("var"), new Object[]{new Place(2)}), new Skeleton(new Cache("var"), new Object[]{new Place(5)}), new Skeleton(new Cache("$CUT"), new Object[]{new Place(0)}), new Skeleton(new Cache("atom_length"), new Object[]{new Place(1), new Place(6)}), new Skeleton(new Cache("is"), new Object[]{new Place(2), new Skeleton(new Cache("-"), new Object[]{new Skeleton(new Cache("-"), new Object[]{new Place(6), new Place(4)}), new Place(3)})}), new Skeleton(new Cache("sys_atom_part"), new Object[]{new Place(1), new Place(2), new Place(3), new Place(5)})}, 0));
        add(new Clause(8, "sub_atom", new Object[]{new Place(1), new Place(2), new Place(3), new Place(4), new Place(5)}, new Object[]{new Skeleton(new Cache("var"), new Object[]{new Place(3)}), new Skeleton(new Cache("var"), new Object[]{new Place(4)}), new Skeleton(new Cache("var"), new Object[]{new Place(5)}), new Skeleton(new Cache("$CUT"), new Object[]{new Place(0)}), new Skeleton(new Cache("atom_length"), new Object[]{new Place(1), new Place(6)}), new Skeleton(new Cache("=<"), new Object[]{0, new Place(2)}), new Skeleton(new Cache("=<"), new Object[]{new Place(2), new Place(6)}), new Skeleton(new Cache("is"), new Object[]{new Place(7), new Skeleton(new Cache("-"), new Object[]{new Place(6), new Place(2)})}), new Skeleton(new Cache("between"), new Object[]{0, new Place(7), new Place(3)}), new Skeleton(new Cache("sys_atom_part"), new Object[]{new Place(1), new Place(2), new Place(3), new Place(5)}), new Skeleton(new Cache("is"), new Object[]{new Place(4), new Skeleton(new Cache("-"), new Object[]{new Place(7), new Place(3)})})}, 0));
        add(new Clause(7, "sub_atom", new Object[]{new Place(1), new Place(2), new Place(3), new Place(4), new Place(5)}, new Object[]{new Skeleton(new Cache("var"), new Object[]{new Place(4)}), new Skeleton(new Cache("var"), new Object[]{new Place(5)}), new Skeleton(new Cache("$CUT"), new Object[]{new Place(0)}), new Skeleton(new Cache("atom_length"), new Object[]{new Place(1), new Place(6)}), new Skeleton(new Cache("is"), new Object[]{new Place(4), new Skeleton(new Cache("-"), new Object[]{new Skeleton(new Cache("-"), new Object[]{new Place(6), new Place(2)}), new Place(3)})}), new Skeleton(new Cache("sys_atom_part"), new Object[]{new Place(1), new Place(2), new Place(3), new Place(5)})}, 0));
        add(new Clause(7, "sub_atom", new Object[]{new Place(1), new Place(2), new Place(3), new Place(4), new Place(5)}, new Object[]{new Skeleton(new Cache("var"), new Object[]{new Place(5)}), new Skeleton(new Cache("$CUT"), new Object[]{new Place(0)}), new Skeleton(new Cache("atom_length"), new Object[]{new Place(1), new Place(6)}), new Skeleton(new Cache("is"), new Object[]{new Place(3), new Skeleton(new Cache("-"), new Object[]{new Skeleton(new Cache("-"), new Object[]{new Place(6), new Place(4)}), new Place(2)})}), new Skeleton(new Cache("sys_atom_part"), new Object[]{new Place(1), new Place(2), new Place(3), new Place(5)})}, 0));
        add(new Clause(7, "sub_atom", new Object[]{new Place(1), new Place(2), new Place(3), new Place(4), new Place(5)}, new Object[]{new Skeleton(new Cache("var"), new Object[]{new Place(4)}), new Skeleton(new Cache("$CUT"), new Object[]{new Place(0)}), new Skeleton(new Cache("atom_length"), new Object[]{new Place(5), new Place(3)}), new Skeleton(new Cache("atom_length"), new Object[]{new Place(1), new Place(6)}), new Skeleton(new Cache("is"), new Object[]{new Place(4), new Skeleton(new Cache("-"), new Object[]{new Skeleton(new Cache("-"), new Object[]{new Place(6), new Place(2)}), new Place(3)})}), new Skeleton(new Cache("sys_atom_match"), new Object[]{new Place(1), new Place(5), new Place(2)})}, 0));
        add(new Clause(6, "sub_atom", new Object[]{new Place(0), new Place(1), new Place(2), new Place(3), new Place(4)}, new Object[]{new Skeleton(new Cache("atom_length"), new Object[]{new Place(4), new Place(2)}), new Skeleton(new Cache("atom_length"), new Object[]{new Place(0), new Place(5)}), new Skeleton(new Cache("is"), new Object[]{new Place(1), new Skeleton(new Cache("-"), new Object[]{new Skeleton(new Cache("-"), new Object[]{new Place(5), new Place(3)}), new Place(2)})}), new Skeleton(new Cache("sys_atom_match"), new Object[]{new Place(0), new Place(4), new Place(1)})}, -1));
        add(new Clause(10, "last_sub_atom", new Object[]{new Place(1), new Place(2), new Place(3), new Place(4), new Place(5)}, new Object[]{new Skeleton(new Cache("var"), new Object[]{new Place(2)}), new Skeleton(new Cache("var"), new Object[]{new Place(3)}), new Skeleton(new Cache("var"), new Object[]{new Place(4)}), new Skeleton(new Cache("var"), new Object[]{new Place(5)}), new Skeleton(new Cache("$CUT"), new Object[]{new Place(0)}), new Skeleton(new Cache("atom_length"), new Object[]{new Place(1), new Place(6)}), new Skeleton(new Cache("between"), new Object[]{0, new Place(6), new Place(7)}), new Skeleton(new Cache("is"), new Object[]{new Place(2), new Skeleton(new Cache("-"), new Object[]{new Place(6), new Place(7)})}), new Skeleton(new Cache("is"), new Object[]{new Place(8), new Skeleton(new Cache("-"), new Object[]{new Place(6), new Place(2)})}), new Skeleton(new Cache("between"), new Object[]{0, new Place(8), new Place(9)}), new Skeleton(new Cache("is"), new Object[]{new Place(3), new Skeleton(new Cache("-"), new Object[]{new Place(8), new Place(9)})}), new Skeleton(new Cache("sys_last_atom_part"), new Object[]{new Place(1), new Place(2), new Place(3), new Place(5)}), new Skeleton(new Cache("is"), new Object[]{new Place(4), new Skeleton(new Cache("-"), new Object[]{new Place(8), new Place(3)})})}, 0));
        add(new Clause(7, "last_sub_atom", new Object[]{new Place(1), new Place(2), new Place(3), new Place(4), new Place(5)}, new Object[]{new Skeleton(new Cache("var"), new Object[]{new Place(2)}), new Skeleton(new Cache("var"), new Object[]{new Place(4)}), new Skeleton(new Cache("var"), new Object[]{new Place(5)}), new Skeleton(new Cache("$CUT"), new Object[]{new Place(0)}), new Skeleton(new Cache("atom_length"), new Object[]{new Place(1), new Place(6)}), new Skeleton(new Cache("sys_last_atom_part"), new Object[]{new Place(1), new Place(2), new Place(3), new Place(5)}), new Skeleton(new Cache("is"), new Object[]{new Place(4), new Skeleton(new Cache("-"), new Object[]{new Skeleton(new Cache("-"), new Object[]{new Place(6), new Place(2)}), new Place(3)})})}, 0));
        add(new Clause(7, "last_sub_atom", new Object[]{new Place(1), new Place(2), new Place(3), new Place(4), new Place(5)}, new Object[]{new Skeleton(new Cache("var"), new Object[]{new Place(2)}), new Skeleton(new Cache("var"), new Object[]{new Place(4)}), new Skeleton(new Cache("$CUT"), new Object[]{new Place(0)}), new Skeleton(new Cache("atom_length"), new Object[]{new Place(5), new Place(3)}), new Skeleton(new Cache("atom_length"), new Object[]{new Place(1), new Place(6)}), new Skeleton(new Cache("sys_last_atom_match"), new Object[]{new Place(1), new Place(5), new Place(2)}), new Skeleton(new Cache("is"), new Object[]{new Place(4), new Skeleton(new Cache("-"), new Object[]{new Skeleton(new Cache("-"), new Object[]{new Place(6), new Place(2)}), new Place(3)})})}, 0));
        add(new Clause(9, "last_sub_atom", new Object[]{new Place(1), new Place(2), new Place(3), new Place(4), new Place(5)}, new Object[]{new Skeleton(new Cache("var"), new Object[]{new Place(2)}), new Skeleton(new Cache("var"), new Object[]{new Place(3)}), new Skeleton(new Cache("var"), new Object[]{new Place(5)}), new Skeleton(new Cache("$CUT"), new Object[]{new Place(0)}), new Skeleton(new Cache("atom_length"), new Object[]{new Place(1), new Place(6)}), new Skeleton(new Cache("=<"), new Object[]{0, new Place(4)}), new Skeleton(new Cache("=<"), new Object[]{new Place(4), new Place(6)}), new Skeleton(new Cache("is"), new Object[]{new Place(7), new Skeleton(new Cache("-"), new Object[]{new Place(6), new Place(4)})}), new Skeleton(new Cache("between"), new Object[]{0, new Place(7), new Place(8)}), new Skeleton(new Cache("is"), new Object[]{new Place(2), new Skeleton(new Cache("-"), new Object[]{new Place(7), new Place(8)})}), new Skeleton(new Cache("is"), new Object[]{new Place(3), new Skeleton(new Cache("-"), new Object[]{new Place(7), new Place(2)})}), new Skeleton(new Cache("sys_last_atom_part"), new Object[]{new Place(1), new Place(2), new Place(3), new Place(5)})}, 0));
        add(new Clause(7, "last_sub_atom", new Object[]{new Place(1), new Place(2), new Place(3), new Place(4), new Place(5)}, new Object[]{new Skeleton(new Cache("var"), new Object[]{new Place(2)}), new Skeleton(new Cache("var"), new Object[]{new Place(5)}), new Skeleton(new Cache("$CUT"), new Object[]{new Place(0)}), new Skeleton(new Cache("atom_length"), new Object[]{new Place(1), new Place(6)}), new Skeleton(new Cache("is"), new Object[]{new Place(2), new Skeleton(new Cache("-"), new Object[]{new Skeleton(new Cache("-"), new Object[]{new Place(6), new Place(4)}), new Place(3)})}), new Skeleton(new Cache("sys_last_atom_part"), new Object[]{new Place(1), new Place(2), new Place(3), new Place(5)})}, 0));
        add(new Clause(9, "last_sub_atom", new Object[]{new Place(1), new Place(2), new Place(3), new Place(4), new Place(5)}, new Object[]{new Skeleton(new Cache("var"), new Object[]{new Place(3)}), new Skeleton(new Cache("var"), new Object[]{new Place(4)}), new Skeleton(new Cache("var"), new Object[]{new Place(5)}), new Skeleton(new Cache("$CUT"), new Object[]{new Place(0)}), new Skeleton(new Cache("atom_length"), new Object[]{new Place(1), new Place(6)}), new Skeleton(new Cache("=<"), new Object[]{0, new Place(2)}), new Skeleton(new Cache("=<"), new Object[]{new Place(2), new Place(6)}), new Skeleton(new Cache("is"), new Object[]{new Place(7), new Skeleton(new Cache("-"), new Object[]{new Place(6), new Place(2)})}), new Skeleton(new Cache("between"), new Object[]{0, new Place(7), new Place(8)}), new Skeleton(new Cache("is"), new Object[]{new Place(3), new Skeleton(new Cache("-"), new Object[]{new Place(7), new Place(8)})}), new Skeleton(new Cache("sys_last_atom_part"), new Object[]{new Place(1), new Place(2), new Place(3), new Place(5)}), new Skeleton(new Cache("is"), new Object[]{new Place(4), new Skeleton(new Cache("-"), new Object[]{new Place(7), new Place(3)})})}, 0));
        add(new Clause(7, "last_sub_atom", new Object[]{new Place(1), new Place(2), new Place(3), new Place(4), new Place(5)}, new Object[]{new Skeleton(new Cache("var"), new Object[]{new Place(4)}), new Skeleton(new Cache("var"), new Object[]{new Place(5)}), new Skeleton(new Cache("$CUT"), new Object[]{new Place(0)}), new Skeleton(new Cache("atom_length"), new Object[]{new Place(1), new Place(6)}), new Skeleton(new Cache("is"), new Object[]{new Place(4), new Skeleton(new Cache("-"), new Object[]{new Skeleton(new Cache("-"), new Object[]{new Place(6), new Place(2)}), new Place(3)})}), new Skeleton(new Cache("sys_last_atom_part"), new Object[]{new Place(1), new Place(2), new Place(3), new Place(5)})}, 0));
        add(new Clause(7, "last_sub_atom", new Object[]{new Place(1), new Place(2), new Place(3), new Place(4), new Place(5)}, new Object[]{new Skeleton(new Cache("var"), new Object[]{new Place(5)}), new Skeleton(new Cache("$CUT"), new Object[]{new Place(0)}), new Skeleton(new Cache("atom_length"), new Object[]{new Place(1), new Place(6)}), new Skeleton(new Cache("is"), new Object[]{new Place(3), new Skeleton(new Cache("-"), new Object[]{new Skeleton(new Cache("-"), new Object[]{new Place(6), new Place(4)}), new Place(2)})}), new Skeleton(new Cache("sys_last_atom_part"), new Object[]{new Place(1), new Place(2), new Place(3), new Place(5)})}, 0));
        add(new Clause(7, "last_sub_atom", new Object[]{new Place(1), new Place(2), new Place(3), new Place(4), new Place(5)}, new Object[]{new Skeleton(new Cache("var"), new Object[]{new Place(4)}), new Skeleton(new Cache("$CUT"), new Object[]{new Place(0)}), new Skeleton(new Cache("atom_length"), new Object[]{new Place(5), new Place(3)}), new Skeleton(new Cache("atom_length"), new Object[]{new Place(1), new Place(6)}), new Skeleton(new Cache("is"), new Object[]{new Place(4), new Skeleton(new Cache("-"), new Object[]{new Skeleton(new Cache("-"), new Object[]{new Place(6), new Place(2)}), new Place(3)})}), new Skeleton(new Cache("sys_last_atom_match"), new Object[]{new Place(1), new Place(5), new Place(2)})}, 0));
        add(new Clause(6, "last_sub_atom", new Object[]{new Place(0), new Place(1), new Place(2), new Place(3), new Place(4)}, new Object[]{new Skeleton(new Cache("atom_length"), new Object[]{new Place(4), new Place(2)}), new Skeleton(new Cache("atom_length"), new Object[]{new Place(0), new Place(5)}), new Skeleton(new Cache("is"), new Object[]{new Place(1), new Skeleton(new Cache("-"), new Object[]{new Skeleton(new Cache("-"), new Object[]{new Place(5), new Place(3)}), new Place(2)})}), new Skeleton(new Cache("sys_last_atom_match"), new Object[]{new Place(0), new Place(4), new Place(1)})}, -1));
        add(new Clause(0, "strings", new Object[]{"instantiation_error", "de", "Argument sollte keine Variable sein."}, new Object[]{}, -1));
        add(new Clause(0, "strings", new Object[]{"domain_error.read_option", "de", "Leseoption erwartet, gefunden ~q."}, new Object[]{}, -1));
        add(new Clause(0, "strings", new Object[]{"domain_error.io_mode", "de", "Eingabe-/Ausgabemodus (read oder write) erwartet, gefunden ~q."}, new Object[]{}, -1));
        add(new Clause(0, "strings", new Object[]{"domain_error.write_option", "de", "Schreiboption erwartet, gefunden ~q."}, new Object[]{}, -1));
        add(new Clause(0, "strings", new Object[]{"domain_error.open_option", "de", "Öffnenoption erwartet, gefunden ~q."}, new Object[]{}, -1));
        add(new Clause(0, "strings", new Object[]{"domain_error.boolean", "de", "Boolean (true oder false) erwartet, gefunden ~q."}, new Object[]{}, -1));
        add(new Clause(0, "strings", new Object[]{"domain_error.file_property", "de", "Dateieigenschaft erwartet, gefunden ~q."}, new Object[]{}, -1));
        add(new Clause(0, "strings", new Object[]{"domain_error.radix", "de", "Unerlaubte Zahlenbasis ~q, nicht zwischen 2 und 36."}, new Object[]{}, -1));
        add(new Clause(0, "strings", new Object[]{"domain_error.character_code", "de", "Unerlaubter Kodepunkt ~q, nicht zwischen 0 und 0x10FFFF."}, new Object[]{}, -1));
        add(new Clause(0, "strings", new Object[]{"domain_error.exotic", "de", "Exot erwartet, gefunden ~q."}, new Object[]{}, -1));
        add(new Clause(0, "strings", new Object[]{"type_error.writer", "de", "Ausgabestrom erwartet, gefunden ~q."}, new Object[]{}, -1));
        add(new Clause(0, "strings", new Object[]{"type_error.reader", "de", "Eingabestrom erwartet, gefunden ~q."}, new Object[]{}, -1));
        add(new Clause(0, "strings", new Object[]{"type_error.goal", "de", "Ziel erwartet, gefunden ~q."}, new Object[]{}, -1));
        add(new Clause(0, "strings", new Object[]{"type_error.clause", "de", "Klausel erwartet, gefunden ~q."}, new Object[]{}, -1));
        add(new Clause(0, "strings", new Object[]{"type_error.provable", "de", "Herleitbar erwartet, gefunden ~q."}, new Object[]{}, -1));
        add(new Clause(0, "strings", new Object[]{"type_error.type", "de", "Datentyp erwartet, gefunden ~q."}, new Object[]{}, -1));
        add(new Clause(0, "strings", new Object[]{"type_error.timer", "de", "Zeitgeber erwartet, gefunden ~q."}, new Object[]{}, -1));
        add(new Clause(0, "strings", new Object[]{"type_error.task", "de", "Aufgabe erwartet, gefunden ~q."}, new Object[]{}, -1));
        add(new Clause(0, "strings", new Object[]{"existence_error.source_sink", "de", "Datei ~q nicht gefunden."}, new Object[]{}, -1));
        add(new Clause(0, "strings", new Object[]{"existence_error.module", "de", "Modul ~q nicht gefunden."}, new Object[]{}, -1));
        add(new Clause(0, "strings", new Object[]{"permission_error.open.source_sink", "de", "Kann Datei ~q nicht öffnen."}, new Object[]{}, -1));
        add(new Clause(0, "strings", new Object[]{"permission_error.modify.compound", "de", "Kann Verbund ~q nicht ändern."}, new Object[]{}, -1));
        add(new Clause(0, "strings", new Object[]{"resource_error.socket_timeout", "de", "Ein-/Ausgabeauszeit."}, new Object[]{}, -1));
        add(new Clause(0, "strings", new Object[]{"resource_error.port_error", "de", "Fehler bei Verwendung eines Port."}, new Object[]{}, -1));
        add(new Clause(0, "strings", new Object[]{"resource_error.remote_error", "de", "Fehler von Entfernt erhalten."}, new Object[]{}, -1));
        add(new Clause(0, "strings", new Object[]{"resource_error.io_exception", "de", "Datei nicht erstellt oder nicht zugreifbar."}, new Object[]{}, -1));
        add(new Clause(0, "strings", new Object[]{"system_error.timelimit_exceeded", "de", "Ausführung abgebrochen da Zeitfrist abgelaufen."}, new Object[]{}, -1));
        add(new Clause(0, "strings", new Object[]{"system_error.stack_overflow", "de", "Ausführung wegen Stapelüberlauf abgebrochen."}, new Object[]{}, -1));
        add(new Clause(0, "strings", new Object[]{"system_error.out_of_memory", "de", "Ausführung wegen aufgebrauchtem Speicherplatz abgebrochen."}, new Object[]{}, -1));
        add(new Clause(0, "strings", new Object[]{"system_error.user_abort", "de", "Ausführung auf Benutzerwunsch abgebrochen."}, new Object[]{}, -1));
        add(new Clause(0, "strings", new Object[]{"system_error.user_exit", "de", "System auf Benutzerwunsch beendet."}, new Object[]{}, -1));
        add(new Clause(0, "strings", new Object[]{"system_error.illegal_yield", "de", "Yield Instruktion momentan nicht verfügbar"}, new Object[]{}, -1));
        add(new Clause(0, "strings", new Object[]{"syntax_error.directive_failed", "de", "Direktive fehlgeschlagen."}, new Object[]{}, -1));
        add(new Clause(0, "strings", new Object[]{"instantiation_error", "", "Argument should not be a variable."}, new Object[]{}, -1));
        add(new Clause(0, "strings", new Object[]{"domain_error.read_option", "", "Read option expected, found ~q."}, new Object[]{}, -1));
        add(new Clause(0, "strings", new Object[]{"domain_error.io_mode", "", "Input/output mode (read or write) expected, found ~q."}, new Object[]{}, -1));
        add(new Clause(0, "strings", new Object[]{"domain_error.write_option", "", "Write option expected, found ~q."}, new Object[]{}, -1));
        add(new Clause(0, "strings", new Object[]{"domain_error.open_option", "", "Open option expected, found ~q."}, new Object[]{}, -1));
        add(new Clause(0, "strings", new Object[]{"domain_error.boolean", "", "Boolean (true or false) expected, found ~q."}, new Object[]{}, -1));
        add(new Clause(0, "strings", new Object[]{"domain_error.file_property", "", "File property expected, found ~q."}, new Object[]{}, -1));
        add(new Clause(0, "strings", new Object[]{"domain_error.radix", "", "Illegal number base ~q, not between 2 and 36."}, new Object[]{}, -1));
        add(new Clause(0, "strings", new Object[]{"domain_error.character_code", "", "Illegal code point ~q, not between 0 and 0x10FFFF."}, new Object[]{}, -1));
        add(new Clause(0, "strings", new Object[]{"domain_error.exotic", "", "Exotic expected, found ~q."}, new Object[]{}, -1));
        add(new Clause(0, "strings", new Object[]{"type_error.writer", "", "Outputstream expected, found ~q."}, new Object[]{}, -1));
        add(new Clause(0, "strings", new Object[]{"type_error.reader", "", "Inputstream expected, found ~q."}, new Object[]{}, -1));
        add(new Clause(0, "strings", new Object[]{"type_error.goal", "", "Goal expected, found ~q."}, new Object[]{}, -1));
        add(new Clause(0, "strings", new Object[]{"type_error.clause", "", "Clause expected, found ~q."}, new Object[]{}, -1));
        add(new Clause(0, "strings", new Object[]{"type_error.provable", "", "Provable expected, found ~q."}, new Object[]{}, -1));
        add(new Clause(0, "strings", new Object[]{"type_error.type", "", "Type expected, found ~q."}, new Object[]{}, -1));
        add(new Clause(0, "strings", new Object[]{"type_error.timer", "", "Timer expected, found ~q."}, new Object[]{}, -1));
        add(new Clause(0, "strings", new Object[]{"type_error.task", "", "Task expected, found ~q."}, new Object[]{}, -1));
        add(new Clause(0, "strings", new Object[]{"existence_error.source_sink", "", "File ~q not found."}, new Object[]{}, -1));
        add(new Clause(0, "strings", new Object[]{"existence_error.module", "", "Module ~q not found."}, new Object[]{}, -1));
        add(new Clause(0, "strings", new Object[]{"permission_error.open.source_sink", "", "Cannot open file ~q."}, new Object[]{}, -1));
        add(new Clause(0, "strings", new Object[]{"permission_error.modify.compound", "", "Cannot modify compound ~q."}, new Object[]{}, -1));
        add(new Clause(0, "strings", new Object[]{"resource_error.socket_timeout", "", "Input/output timeout."}, new Object[]{}, -1));
        add(new Clause(0, "strings", new Object[]{"resource_error.port_error", "", "Error using a port."}, new Object[]{}, -1));
        add(new Clause(0, "strings", new Object[]{"resource_error.remote_error", "", "Got error from remote."}, new Object[]{}, -1));
        add(new Clause(0, "strings", new Object[]{"resource_error.io_exception", "", "File not created or not accessible."}, new Object[]{}, -1));
        add(new Clause(0, "strings", new Object[]{"system_error.timelimit_exceeded", "", "Execution aborted since time limit exceeded."}, new Object[]{}, -1));
        add(new Clause(0, "strings", new Object[]{"system_error.stack_overflow", "", "Execution aborted because of stack overflow."}, new Object[]{}, -1));
        add(new Clause(0, "strings", new Object[]{"system_error.out_of_memory", "", "Execution aborted because out of memory."}, new Object[]{}, -1));
        add(new Clause(0, "strings", new Object[]{"system_error.user_abort", "", "Execution aborted on user request."}, new Object[]{}, -1));
        add(new Clause(0, "strings", new Object[]{"system_error.user_exit", "", "System ended on user request."}, new Object[]{}, -1));
        add(new Clause(0, "strings", new Object[]{"system_error.illegal_yield", "", "Yield instruction currently not available."}, new Object[]{}, -1));
        add(new Clause(0, "strings", new Object[]{"syntax_error.directive_failed", "", "Directive failed."}, new Object[]{}, -1));
    }

    public static void boot4() {
        add(new Clause(3, "dynamic", new Object[]{new Skeleton("/", new Object[]{new Place(1), new Place(2)})}, new Object[]{new Skeleton(new Cache("$CUT"), new Object[]{new Place(0)}), new Skeleton(new Cache("must_be"), new Object[]{"atom", new Place(1)}), new Skeleton(new Cache("must_be"), new Object[]{"integer", new Place(2)}), new Skeleton(new Cache("sys_style_indicator"), new Object[]{new Place(1), new Place(2)}), new Skeleton(new Cache("kb_pred_touch"), new Object[]{new Place(1), new Place(2), 1})}, 0));
        add(new Clause(1, "dynamic", new Object[]{new Place(0)}, new Object[]{new Skeleton(new Cache("throw"), new Object[]{new Skeleton("error", new Object[]{new Skeleton("type_error", new Object[]{"predicate_indicator", new Place(0)}), UNDEF_OBJ})})}, -1));
        add(new Clause(3, "prehash", new Object[]{new Skeleton("/", new Object[]{new Place(1), new Place(2)})}, new Object[]{new Skeleton(new Cache("$CUT"), new Object[]{new Place(0)}), new Skeleton(new Cache("must_be"), new Object[]{"atom", new Place(1)}), new Skeleton(new Cache("must_be"), new Object[]{"integer", new Place(2)}), new Skeleton(new Cache("sys_style_indicator"), new Object[]{new Place(1), new Place(2)}), new Skeleton(new Cache("kb_pred_touch"), new Object[]{new Place(1), new Place(2), 4})}, 0));
        add(new Clause(1, "prehash", new Object[]{new Place(0)}, new Object[]{new Skeleton(new Cache("throw"), new Object[]{new Skeleton("error", new Object[]{new Skeleton("type_error", new Object[]{"predicate_indicator", new Place(0)}), UNDEF_OBJ})})}, -1));
        add(new Clause(9, "asserta", new Object[]{new Place(1)}, new Object[]{new Skeleton(new Cache("nonvar"), new Object[]{new Place(1)}), new Skeleton(new Cache("="), new Object[]{new Place(1), new Skeleton(":-", new Object[]{new Place(2), new Place(3)})}), new Skeleton(new Cache("$CUT"), new Object[]{new Place(0)}), new Skeleton(new Cache("sys_trans_body"), new Object[]{new Place(3), "nothing", new Place(4), 0, new Place(5), "[]"}), new Skeleton(new Cache("=.."), new Object[]{new Place(2), new Skeleton(".", new Object[]{new Place(6), new Place(7)})}), new Skeleton(new Cache("sys_clause_ossify"), new Object[]{new Place(7), new Place(5), new Place(4), new Place(6), new Place(8)}), new Skeleton(new Cache("sys_clause_add"), new Object[]{new Place(8), 1})}, 0));
        add(new Clause(4, "asserta", new Object[]{new Place(0)}, new Object[]{new Skeleton(new Cache("=.."), new Object[]{new Place(0), new Skeleton(".", new Object[]{new Place(1), new Place(2)})}), new Skeleton(new Cache("sys_clause_ossify"), new Object[]{new Place(2), "[]", "nothing", new Place(1), new Place(3)}), new Skeleton(new Cache("sys_clause_add"), new Object[]{new Place(3), 1})}, -1));
        add(new Clause(9, "assertz", new Object[]{new Place(1)}, new Object[]{new Skeleton(new Cache("nonvar"), new Object[]{new Place(1)}), new Skeleton(new Cache("="), new Object[]{new Place(1), new Skeleton(":-", new Object[]{new Place(2), new Place(3)})}), new Skeleton(new Cache("$CUT"), new Object[]{new Place(0)}), new Skeleton(new Cache("sys_trans_body"), new Object[]{new Place(3), "nothing", new Place(4), 0, new Place(5), "[]"}), new Skeleton(new Cache("=.."), new Object[]{new Place(2), new Skeleton(".", new Object[]{new Place(6), new Place(7)})}), new Skeleton(new Cache("sys_clause_ossify"), new Object[]{new Place(7), new Place(5), new Place(4), new Place(6), new Place(8)}), new Skeleton(new Cache("sys_clause_add"), new Object[]{new Place(8), 3})}, 0));
        add(new Clause(4, "assertz", new Object[]{new Place(0)}, new Object[]{new Skeleton(new Cache("=.."), new Object[]{new Place(0), new Skeleton(".", new Object[]{new Place(1), new Place(2)})}), new Skeleton(new Cache("sys_clause_ossify"), new Object[]{new Place(2), "[]", "nothing", new Place(1), new Place(3)}), new Skeleton(new Cache("sys_clause_add"), new Object[]{new Place(3), 3})}, -1));
        add(new Clause(6, "clause", new Object[]{new Place(0), new Place(1)}, new Object[]{new Skeleton(new Cache("kb_clause_ref"), new Object[]{new Place(0), 2, new Place(2)}), new Skeleton(new Cache("kb_clause_data"), new Object[]{new Place(2), new Place(0), new Place(3), new Place(4)}), new Skeleton(new Cache("sys_untrans_body"), new Object[]{new Place(4), new Place(3), 0, new Place(5)}), new Skeleton(new Cache("="), new Object[]{new Place(5), new Place(1)})}, -1));
        add(new Clause(8, "retract", new Object[]{new Place(1)}, new Object[]{new Skeleton(new Cache("nonvar"), new Object[]{new Place(1)}), new Skeleton(new Cache("="), new Object[]{new Place(1), new Skeleton(":-", new Object[]{new Place(2), new Place(3)})}), new Skeleton(new Cache("$CUT"), new Object[]{new Place(0)}), new Skeleton(new Cache("kb_clause_ref"), new Object[]{new Place(2), 3, new Place(4)}), new Skeleton(new Cache("kb_clause_data"), new Object[]{new Place(4), new Place(2), new Place(5), new Place(6)}), new Skeleton(new Cache("sys_untrans_body"), new Object[]{new Place(6), new Place(5), 0, new Place(7)}), new Skeleton(new Cache("="), new Object[]{new Place(7), new Place(3)}), new Skeleton(new Cache("kb_clause_remove"), new Object[]{new Place(4), 0})}, 0));
        add(new Clause(2, "retract", new Object[]{new Place(0)}, new Object[]{new Skeleton(new Cache("kb_clause_ref"), new Object[]{new Place(0), 3, new Place(1)}), new Skeleton(new Cache("kb_clause_data"), new Object[]{new Place(1), new Place(0), UNDEF_OBJ, "[]"}), new Skeleton(new Cache("kb_clause_remove"), new Object[]{new Place(1), 0})}, -1));
        add(new Clause(2, "retractall", new Object[]{new Place(0)}, new Object[]{new Skeleton(new Cache("kb_clause_ref"), new Object[]{new Place(0), 7, new Place(1)}), new Skeleton(new Cache("kb_clause_head"), new Object[]{new Place(1), new Place(0)}), new Skeleton(new Cache("kb_clause_remove"), new Object[]{new Place(1), 1}), new Cache("fail")}, -1));
        add(new Clause(0, "retractall", new Object[]{UNDEF_OBJ}, new Object[]{}, -1));
        add(new Clause(3, "abolish", new Object[]{new Skeleton("/", new Object[]{new Place(1), new Place(2)})}, new Object[]{new Skeleton(new Cache("$CUT"), new Object[]{new Place(0)}), new Skeleton(new Cache("sys_abolish"), new Object[]{new Place(1), new Place(2)})}, 0));
        add(new Clause(1, "abolish", new Object[]{new Place(0)}, new Object[]{new Skeleton(new Cache("throw"), new Object[]{new Skeleton("error", new Object[]{new Skeleton("type_error", new Object[]{"predicate_indicator", new Place(0)}), UNDEF_OBJ})})}, -1));
        add(new Clause(4, "sys_abolish", new Object[]{new Place(0), new Place(1)}, new Object[]{new Skeleton(new Cache("kb_pred_link"), new Object[]{new Place(0), new Place(1), new Place(2)}), new Skeleton(new Cache("kb_link_flags"), new Object[]{new Place(2), new Place(3)}), new Skeleton(new Cache("=:="), new Object[]{new Skeleton(new Cache("/\\"), new Object[]{new Place(3), 1}), 0}), new Skeleton(new Cache("throw"), new Object[]{new Skeleton("error", new Object[]{new Skeleton("permission_error", new Object[]{"modify", "static_procedure", new Skeleton("/", new Object[]{new Place(0), new Place(1)})}), UNDEF_OBJ})})}, -1));
        add(new Clause(2, "sys_abolish", new Object[]{new Place(0), new Place(1)}, new Object[]{new Skeleton(new Cache("retractall"), new Object[]{new Skeleton(new Cache("sys_predprop"), new Object[]{new Place(0), new Place(1), UNDEF_OBJ})}), new Skeleton(new Cache("kb_pred_destroy"), new Object[]{new Place(0), new Place(1)})}, -1));
        run(new Goal(0, new Object[]{new Frozen(new Cache("kb_pred_touch"), new Object[]{"sys_predprop", 3, 1})}, -1));
        add(new Clause(4, "current_predicate", new Object[]{new Skeleton("/", new Object[]{new Place(1), new Place(2)})}, new Object[]{new Skeleton(make_defined(new Object[]{new Clause(1, "", new Object[]{new Place(0), UNDEF_OBJ}, new Object[]{new Skeleton(new Cache("var"), new Object[]{new Place(0)})}, -1), new Clause(1, "", new Object[]{UNDEF_OBJ, new Place(0)}, new Object[]{new Skeleton(new Cache("var"), new Object[]{new Place(0)})}, -1)}), new Object[]{new Place(1), new Place(2)}), new Skeleton(new Cache("$CUT"), new Object[]{new Place(0)}), new Skeleton(new Cache("kb_pred_list"), new Object[]{new Place(3)}), new Skeleton(new Cache("member"), new Object[]{new Skeleton("/", new Object[]{new Place(1), new Place(2)}), new Place(3)})}, 0));
        add(new Clause(3, "current_predicate", new Object[]{new Skeleton("/", new Object[]{new Place(1), new Place(2)})}, new Object[]{new Skeleton(new Cache("$CUT"), new Object[]{new Place(0)}), new Skeleton(new Cache("kb_pred_link"), new Object[]{new Place(1), new Place(2), UNDEF_OBJ})}, 0));
        add(new Clause(1, "current_predicate", new Object[]{new Place(0)}, new Object[]{new Skeleton(new Cache("throw"), new Object[]{new Skeleton("error", new Object[]{new Skeleton("type_error", new Object[]{"predicate_indicator", new Place(0)}), UNDEF_OBJ})})}, -1));
        add(new Clause(4, "predicate_property", new Object[]{new Skeleton("/", new Object[]{new Place(1), new Place(2)}), new Place(3)}, new Object[]{new Skeleton(make_defined(new Object[]{new Clause(1, "", new Object[]{new Place(0), UNDEF_OBJ}, new Object[]{new Skeleton(new Cache("var"), new Object[]{new Place(0)})}, -1), new Clause(1, "", new Object[]{UNDEF_OBJ, new Place(0)}, new Object[]{new Skeleton(new Cache("var"), new Object[]{new Place(0)})}, -1)}), new Object[]{new Place(1), new Place(2)}), new Skeleton(new Cache("$CUT"), new Object[]{new Place(0)}), new Skeleton(new Cache("current_predicate"), new Object[]{new Skeleton("/", new Object[]{new Place(1), new Place(2)})}), new Skeleton(new Cache("sys_predprop_get"), new Object[]{new Place(1), new Place(2), new Place(3)})}, 0));
        add(new Clause(4, "predicate_property", new Object[]{new Skeleton("/", new Object[]{new Place(1), new Place(2)}), new Place(3)}, new Object[]{new Skeleton(new Cache("$CUT"), new Object[]{new Place(0)}), new Skeleton(new Cache("sys_predprop_get"), new Object[]{new Place(1), new Place(2), new Place(3)})}, 0));
        add(new Clause(1, "predicate_property", new Object[]{new Place(0), UNDEF_OBJ}, new Object[]{new Skeleton(new Cache("throw"), new Object[]{new Skeleton("error", new Object[]{new Skeleton("type_error", new Object[]{"predicate_indicator", new Place(0)}), UNDEF_OBJ})})}, -1));
        add(new Clause(7, "sys_predprop_get", new Object[]{new Place(0), new Place(1), new Place(2)}, new Object[]{new Skeleton(new Cache("kb_pred_link"), new Object[]{new Place(0), new Place(1), new Place(3)}), new Skeleton(new Cache("kb_link_flags"), new Object[]{new Place(3), new Place(4)}), new Skeleton(new Cache("is"), new Object[]{new Place(5), new Skeleton(new Cache("/\\"), new Object[]{new Place(4), 15})}), new Skeleton(new Cache("sys_predprop_flag"), new Object[]{new Place(5), new Place(6)}), new Skeleton(new Cache("="), new Object[]{new Place(2), new Place(6)})}, -1));
        add(new Clause(3, "sys_predprop_get", new Object[]{new Place(0), new Place(1), new Place(2)}, new Object[]{new Skeleton(new Cache("sys_predprop"), new Object[]{new Place(0), new Place(1), new Place(2)})}, -1));
        add(new Clause(1, "sys_predprop_flag", new Object[]{0, "static"}, new Object[]{new Skeleton(new Cache("$CUT"), new Object[]{new Place(0)})}, 0));
        add(new Clause(1, "sys_predprop_flag", new Object[]{1, "dynamic"}, new Object[]{new Skeleton(new Cache("$CUT"), new Object[]{new Place(0)})}, 0));
        add(new Clause(0, "sys_predprop_flag", new Object[]{UNDEF_OBJ, "built_in"}, new Object[]{}, -1));
        run(new Goal(0, new Object[]{new Frozen(new Cache("kb_pred_touch"), new Object[]{"sys_emulated", 2, 1})}, -1));
        add(new Clause(0, "sys_emulated", new Object[]{"argv", "[]"}, new Object[]{}, -1));
        add(new Clause(0, "sys_emulated", new Object[]{"sys_locale", "en_GB"}, new Object[]{}, -1));
        add(new Clause(0, "sys_emulated", new Object[]{"sys_color", "normal"}, new Object[]{}, -1));
        add(new Clause(3, "set_prolog_flag", new Object[]{new Place(1), new Place(2)}, new Object[]{new Skeleton(new Cache("must_be"), new Object[]{"atom", new Place(1)}), new Skeleton(new Cache("sys_prolog_flag_set"), new Object[]{new Place(1), new Place(2)}), new Skeleton(new Cache("$CUT"), new Object[]{new Place(0)})}, 0));
        add(new Clause(1, "set_prolog_flag", new Object[]{new Place(0), UNDEF_OBJ}, new Object[]{new Skeleton(new Cache("throw"), new Object[]{new Skeleton("error", new Object[]{new Skeleton("domain_error", new Object[]{"prolog_flag", new Place(0)}), UNDEF_OBJ})})}, -1));
        add(new Clause(1, "sys_prolog_flag_set", new Object[]{"argv", new Place(0)}, new Object[]{new Skeleton(new Cache("retractall"), new Object[]{new Skeleton(new Cache("sys_emulated"), new Object[]{"argv", UNDEF_OBJ})}), new Skeleton(new Cache("assertz"), new Object[]{new Skeleton(new Cache("sys_emulated"), new Object[]{"argv", new Place(0)})})}, -1));
        add(new Clause(1, "sys_prolog_flag_set", new Object[]{"sys_locale", new Place(0)}, new Object[]{new Skeleton(new Cache("retractall"), new Object[]{new Skeleton(new Cache("sys_emulated"), new Object[]{"sys_locale", UNDEF_OBJ})}), new Skeleton(new Cache("assertz"), new Object[]{new Skeleton(new Cache("sys_emulated"), new Object[]{"sys_locale", new Place(0)})})}, -1));
        add(new Clause(1, "sys_prolog_flag_set", new Object[]{"sys_color", new Place(0)}, new Object[]{new Skeleton(new Cache("retractall"), new Object[]{new Skeleton(new Cache("sys_emulated"), new Object[]{"sys_color", UNDEF_OBJ})}), new Skeleton(new Cache("assertz"), new Object[]{new Skeleton(new Cache("sys_emulated"), new Object[]{"sys_color", new Place(0)})})}, -1));
        add(new Clause(1, "sys_prolog_flag_set", new Object[]{"base_url", new Place(0)}, new Object[]{new Skeleton(new Cache("os_set_workdir"), new Object[]{new Place(0)})}, -1));
        add(new Clause(1, "sys_prolog_flag_set", new Object[]{"stage", new Place(0)}, new Object[]{new Skeleton(new Cache("dg_set_stage"), new Object[]{new Place(0)})}, -1));
        add(new Clause(1, "sys_prolog_flag_set", new Object[]{"partition", new Place(0)}, new Object[]{new Skeleton(new Cache("dg_set_partition"), new Object[]{new Place(0)})}, -1));
        add(new Clause(1, "sys_prolog_flag_set", new Object[]{new Place(0), UNDEF_OBJ}, new Object[]{new Skeleton(new Cache("sys_prolog_flag_get"), new Object[]{new Place(0), UNDEF_OBJ}), new Skeleton(new Cache("throw"), new Object[]{new Skeleton("error", new Object[]{new Skeleton("permission_error", new Object[]{"modify", "flag", new Place(0)}), UNDEF_OBJ})})}, -1));
        add(new Clause(3, "current_prolog_flag", new Object[]{new Place(1), new Place(2)}, new Object[]{new Skeleton(new Cache("var"), new Object[]{new Place(1)}), new Skeleton(new Cache("$CUT"), new Object[]{new Place(0)}), new Skeleton(new Cache("sys_prolog_flag_get"), new Object[]{new Place(1), new Place(2)})}, 0));
        add(new Clause(4, "current_prolog_flag", new Object[]{new Place(1), new Place(2)}, new Object[]{new Skeleton(new Cache("must_be"), new Object[]{"atom", new Place(1)}), new Skeleton(new Cache("sys_prolog_flag_get"), new Object[]{new Place(1), new Place(3)}), new Skeleton(new Cache("$CUT"), new Object[]{new Place(0)}), new Skeleton(new Cache("="), new Object[]{new Place(2), new Place(3)})}, 0));
        add(new Clause(1, "current_prolog_flag", new Object[]{new Place(0), UNDEF_OBJ}, new Object[]{new Skeleton(new Cache("throw"), new Object[]{new Skeleton("error", new Object[]{new Skeleton("domain_error", new Object[]{"prolog_flag", new Place(0)}), UNDEF_OBJ})})}, -1));
        add(new Clause(1, "sys_prolog_flag_get", new Object[]{"argv", new Place(0)}, new Object[]{new Skeleton(new Cache("sys_emulated"), new Object[]{"argv", new Place(0)})}, -1));
        add(new Clause(1, "sys_prolog_flag_get", new Object[]{"sys_locale", new Place(0)}, new Object[]{new Skeleton(new Cache("sys_emulated"), new Object[]{"sys_locale", new Place(0)})}, -1));
        add(new Clause(1, "sys_prolog_flag_get", new Object[]{"sys_color", new Place(0)}, new Object[]{new Skeleton(new Cache("sys_emulated"), new Object[]{"sys_color", new Place(0)})}, -1));
        add(new Clause(1, "sys_prolog_flag_get", new Object[]{"base_url", new Place(0)}, new Object[]{new Skeleton(new Cache("os_get_workdir"), new Object[]{new Place(0)})}, -1));
        add(new Clause(1, "sys_prolog_flag_get", new Object[]{"stage", new Place(0)}, new Object[]{new Skeleton(new Cache("dg_get_stage"), new Object[]{new Place(0)})}, -1));
        add(new Clause(1, "sys_prolog_flag_get", new Object[]{"partition", new Place(0)}, new Object[]{new Skeleton(new Cache("dg_get_partition"), new Object[]{new Place(0)})}, -1));
        add(new Clause(0, "sys_prolog_flag_get", new Object[]{"single_quotes", "atom"}, new Object[]{}, -1));
        add(new Clause(0, "sys_prolog_flag_get", new Object[]{"double_quotes", "codes"}, new Object[]{}, -1));
        add(new Clause(0, "sys_prolog_flag_get", new Object[]{"back_quotes", "variable"}, new Object[]{}, -1));
        add(new Clause(0, "sys_prolog_flag_get", new Object[]{"dialect", "dogelog"}, new Object[]{}, -1));
        add(new Clause(0, "sys_prolog_flag_get", new Object[]{"version", 20204}, new Object[]{}, -1));
        add(new Clause(0, "sys_prolog_flag_get", new Object[]{"use_strict", "off"}, new Object[]{}, -1));
        add(new Clause(0, "sys_prolog_flag_get", new Object[]{"max_code", 1114111}, new Object[]{}, -1));
        add(new Clause(0, "sys_prolog_flag_get", new Object[]{"max_arity", 2147483647}, new Object[]{}, -1));
        add(new Clause(2, "sys_prolog_flag_get", new Object[]{"async_mode", new Place(0)}, new Object[]{new Skeleton(new Cache("dg_get_flags"), new Object[]{new Place(1)}), new Skeleton(new Cache("sys_prolog_flag_decode"), new Object[]{new Place(1), 1, new Place(0)})}, -1));
        add(new Clause(2, "sys_prolog_flag_get", new Object[]{"allow_yield", new Place(0)}, new Object[]{new Skeleton(new Cache("dg_get_flags"), new Object[]{new Place(1)}), new Skeleton(new Cache("sys_prolog_flag_decode"), new Object[]{new Place(1), 8, new Place(0)})}, -1));
        add(new Clause(0, "sys_prolog_flag_get", new Object[]{"import_async", "on"}, new Object[]{}, -1));
        add(new Clause(0, "sys_prolog_flag_get", new Object[]{"prop_async", "on"}, new Object[]{}, -1));
        add(new Clause(0, "sys_prolog_flag_get", new Object[]{"read_async", "on"}, new Object[]{}, -1));
        add(new Clause(2, "sys_prolog_flag_get", new Object[]{"state_async", new Place(0)}, new Object[]{new Skeleton(new Cache("dg_get_flags"), new Object[]{new Place(1)}), new Skeleton(new Cache("sys_prolog_flag_decode"), new Object[]{new Place(1), 128, new Place(0)})}, -1));
        add(new Clause(5, "sys_prolog_flag_get", new Object[]{new Place(1), new Place(2)}, new Object[]{new Skeleton(new Cache("var"), new Object[]{new Place(1)}), new Skeleton(new Cache("$CUT"), new Object[]{new Place(0)}), new Skeleton(new Cache("os_get_host"), new Object[]{new Place(3)}), new Skeleton(new Cache("ir_object_keys"), new Object[]{new Place(3), new Place(4)}), new Skeleton(new Cache("member"), new Object[]{new Place(1), new Place(4)}), new Skeleton(new Cache("ir_object_current"), new Object[]{new Place(3), new Place(1), new Place(2)})}, 0));
        add(new Clause(3, "sys_prolog_flag_get", new Object[]{new Place(0), new Place(1)}, new Object[]{new Skeleton(new Cache("os_get_host"), new Object[]{new Place(2)}), new Skeleton(new Cache("ir_object_current"), new Object[]{new Place(2), new Place(0), new Place(1)})}, -1));
        add(new Clause(4, "sys_prolog_flag_decode", new Object[]{new Place(1), new Place(2), new Place(3)}, new Object[]{new Skeleton(new Cache("=\\="), new Object[]{new Skeleton(new Cache("/\\"), new Object[]{new Place(1), new Place(2)}), 0}), new Skeleton(new Cache("$CUT"), new Object[]{new Place(0)}), new Skeleton(new Cache("="), new Object[]{new Place(3), "on"})}, 0));
        add(new Clause(0, "sys_prolog_flag_decode", new Object[]{UNDEF_OBJ, UNDEF_OBJ, "off"}, new Object[]{}, -1));
        add(new Clause(4, "vars_intersection", new Object[]{new Place(0), new Place(1), new Place(2)}, new Object[]{new Skeleton(new Cache("vars_subtract"), new Object[]{new Place(0), new Place(1), new Place(3)}), new Skeleton(new Cache("vars_subtract"), new Object[]{new Place(0), new Place(3), new Place(2)})}, -1));
        add(new Clause(5, "vars_subtract", new Object[]{new Place(0), new Place(1), new Place(2)}, new Object[]{new Skeleton(new Cache("term_variables"), new Object[]{new Place(1), new Place(3)}), new Skeleton(new Cache("term_variables"), new Object[]{new Skeleton("+", new Object[]{new Place(1), new Place(0)}), new Place(4)}), new Skeleton(new Cache("append"), new Object[]{new Place(3), new Place(2), new Place(4)})}, -1));
        run(new Goal(0, new Object[]{new Frozen(new Cache("kb_pred_touch"), new Object[]{"sys_including", 3, 1})}, -1));
        run(new Goal(4, new Object[]{new Skeleton(new Cache("os_get_gestalt"), new Object[]{new Place(0)}), new Skeleton(new Cache("ir_object_current"), new Object[]{new Place(0), "sys_color", new Place(1)}), new Skeleton(new Cache("set_prolog_flag"), new Object[]{"sys_color", new Place(1)}), new Skeleton(new Cache("ir_object_current"), new Object[]{new Place(0), "sys_locale", new Place(2)}), new Skeleton(new Cache("set_prolog_flag"), new Object[]{"sys_locale", new Place(2)}), new Skeleton(new Cache("ir_object_current"), new Object[]{new Place(0), "argv", new Place(3)}), new Skeleton(new Cache("set_prolog_flag"), new Object[]{"argv", new Place(3)})}, -1));
    }

    public static void boot10() {
        run(new Goal(0, new Object[]{new Frozen(new Cache("sys_multifile_safe"), new Object[]{"sys_meta_args", 3})}, -1));
        run(new Goal(0, new Object[]{new Frozen(new Cache("sys_multifile_safe"), new Object[]{"strings", 3})}, -1));
        run(new Goal(0, new Object[]{new Frozen(new Cache("sys_multifile_safe"), new Object[]{"term_expansion", 2})}, -1));
        run(new Goal(0, new Object[]{new Frozen(new Cache("sys_multifile_safe"), new Object[]{"strings", 3})}, -1));
        run(new Goal(0, new Object[]{new Frozen(new Cache("sys_usage_predicate"), new Object[]{"sys_trans_horn", 3})}, -1));
        run(new Goal(0, new Object[]{new Frozen(new Cache("sys_usage_predicate"), new Object[]{"sys_trans_body", 6})}, -1));
        run(new Goal(0, new Object[]{new Frozen(new Cache("sys_usage_predicate"), new Object[]{"sys_trans_cut", 2})}, -1));
        run(new Goal(0, new Object[]{new Frozen(new Cache("sys_usage_predicate"), new Object[]{"sys_trans_disj", 6})}, -1));
        run(new Goal(0, new Object[]{new Frozen(new Cache("sys_usage_predicate"), new Object[]{"sys_trans_alter", 6})}, -1));
        run(new Goal(0, new Object[]{new Frozen(new Cache("sys_usage_predicate"), new Object[]{"sys_trans_mark", 3})}, -1));
        run(new Goal(0, new Object[]{new Frozen(new Cache("sys_usage_predicate"), new Object[]{"sys_safe_meta", 1})}, -1));
        run(new Goal(0, new Object[]{new Frozen(new Cache("sys_usage_predicate"), new Object[]{"sys_untrans_body", 4})}, -1));
        run(new Goal(0, new Object[]{new Frozen(new Cache("sys_usage_predicate"), new Object[]{"sys_untrans_rest", 5})}, -1));
        run(new Goal(0, new Object[]{new Frozen(new Cache("sys_usage_predicate"), new Object[]{"sys_untrans_goal", 4})}, -1));
        run(new Goal(0, new Object[]{new Frozen(new Cache("sys_usage_predicate"), new Object[]{"sys_untrans_disj", 4})}, -1));
        run(new Goal(0, new Object[]{new Frozen(new Cache("sys_usage_predicate"), new Object[]{"sys_untrans_more", 5})}, -1));
        run(new Goal(0, new Object[]{new Frozen(new Cache("sys_usage_predicate"), new Object[]{"sys_untrans_alter", 5})}, -1));
        run(new Goal(0, new Object[]{new Frozen(new Cache("sys_usage_predicate"), new Object[]{"sys_untrans_split", 4})}, -1));
        run(new Goal(0, new Object[]{new Frozen(new Cache("sys_usage_predicate"), new Object[]{"sys_untrans_ambiguity", 2})}, -1));
        run(new Goal(0, new Object[]{new Frozen(new Cache("sys_usage_predicate"), new Object[]{"sys_encode_horn", 3})}, -1));
        run(new Goal(0, new Object[]{new Frozen(new Cache("sys_usage_predicate"), new Object[]{"sys_meta_args", 3})}, -1));
        run(new Goal(0, new Object[]{new Frozen(new Cache("sys_usage_predicate"), new Object[]{"sys_encode_body", 3})}, -1));
        run(new Goal(0, new Object[]{new Frozen(new Cache("sys_usage_predicate"), new Object[]{"sys_encode_goal", 3})}, -1));
        run(new Goal(0, new Object[]{new Frozen(new Cache("sys_usage_predicate"), new Object[]{"sys_encode_disj", 3})}, -1));
        run(new Goal(0, new Object[]{new Frozen(new Cache("sys_usage_predicate"), new Object[]{"sys_encode_link", 3})}, -1));
        run(new Goal(0, new Object[]{new Frozen(new Cache("sys_usage_predicate"), new Object[]{"sys_encode_meta", 4})}, -1));
        run(new Goal(0, new Object[]{new Frozen(new Cache("sys_usage_predicate"), new Object[]{"sys_encode_params", 4})}, -1));
        run(new Goal(0, new Object[]{new Frozen(new Cache("sys_usage_predicate"), new Object[]{"sys_encode_param", 4})}, -1));
        run(new Goal(0, new Object[]{new Frozen(new Cache("sys_usage_predicate"), new Object[]{"sys_encode_expr", 2})}, -1));
        run(new Goal(0, new Object[]{new Frozen(new Cache("sys_usage_predicate"), new Object[]{"sys_encode_args", 2})}, -1));
        run(new Goal(0, new Object[]{new Frozen(new Cache("sys_usage_predicate"), new Object[]{"sys_encode_clause", 2})}, -1));
        run(new Goal(0, new Object[]{new Frozen(new Cache("sys_usage_predicate"), new Object[]{"sys_decode_body", 2})}, -1));
        run(new Goal(0, new Object[]{new Frozen(new Cache("sys_usage_predicate"), new Object[]{"sys_decode_goal", 2})}, -1));
        run(new Goal(0, new Object[]{new Frozen(new Cache("sys_usage_predicate"), new Object[]{"sys_decode_disj", 3})}, -1));
        run(new Goal(0, new Object[]{new Frozen(new Cache("sys_usage_predicate"), new Object[]{"sys_decode_meta", 3})}, -1));
        run(new Goal(0, new Object[]{new Frozen(new Cache("sys_usage_predicate"), new Object[]{"sys_decode_params", 3})}, -1));
        run(new Goal(0, new Object[]{new Frozen(new Cache("sys_usage_predicate"), new Object[]{"sys_decode_param", 3})}, -1));
        run(new Goal(0, new Object[]{new Frozen(new Cache("sys_usage_predicate"), new Object[]{"sys_decode_expr", 2})}, -1));
        run(new Goal(0, new Object[]{new Frozen(new Cache("sys_usage_predicate"), new Object[]{"sys_decode_args", 2})}, -1));
        run(new Goal(0, new Object[]{new Frozen(new Cache("sys_usage_predicate"), new Object[]{"sys_decode_clause", 2})}, -1));
        run(new Goal(0, new Object[]{new Frozen(new Cache("sys_usage_predicate"), new Object[]{"sys_source", 3})}, -1));
        run(new Goal(0, new Object[]{new Frozen(new Cache("sys_usage_predicate"), new Object[]{"sys_srcprop", 2})}, -1));
        run(new Goal(0, new Object[]{new Frozen(new Cache("sys_usage_predicate"), new Object[]{"current_source", 1})}, -1));
        run(new Goal(0, new Object[]{new Frozen(new Cache("sys_usage_predicate"), new Object[]{"source_property", 2})}, -1));
        run(new Goal(0, new Object[]{new Frozen(new Cache("sys_usage_predicate"), new Object[]{"discontiguous", 1})}, -1));
        run(new Goal(0, new Object[]{new Frozen(new Cache("sys_usage_predicate"), new Object[]{"multifile", 1})}, -1));
        run(new Goal(0, new Object[]{new Frozen(new Cache("sys_usage_predicate"), new Object[]{"sys_multifile_safe", 2})}, -1));
        run(new Goal(0, new Object[]{new Frozen(new Cache("sys_usage_predicate"), new Object[]{"include", 1})}, -1));
        run(new Goal(0, new Object[]{new Frozen(new Cache("sys_usage_predicate"), new Object[]{"sys_include_file", 1})}, -1));
        run(new Goal(0, new Object[]{new Frozen(new Cache("sys_usage_predicate"), new Object[]{"sys_include_native", 2})}, -1));
        run(new Goal(0, new Object[]{new Frozen(new Cache("sys_usage_predicate"), new Object[]{".", 2})}, -1));
        run(new Goal(0, new Object[]{new Frozen(new Cache("sys_usage_predicate"), new Object[]{"ensure_loaded", 1})}, -1));
        run(new Goal(0, new Object[]{new Frozen(new Cache("sys_usage_predicate"), new Object[]{"sys_check_file", 2})}, -1));
        run(new Goal(0, new Object[]{new Frozen(new Cache("sys_usage_predicate"), new Object[]{"sys_action_file", 3})}, -1));
        run(new Goal(0, new Object[]{new Frozen(new Cache("sys_usage_predicate"), new Object[]{"sys_lastpred", 3})}, -1));
        run(new Goal(0, new Object[]{new Frozen(new Cache("sys_usage_predicate"), new Object[]{"sys_load_file", 1})}, -1));
        run(new Goal(0, new Object[]{new Frozen(new Cache("sys_usage_predicate"), new Object[]{"sys_loading_begin", 3})}, -1));
        run(new Goal(0, new Object[]{new Frozen(new Cache("sys_usage_predicate"), new Object[]{"sys_loading_end", 2})}, -1));
        run(new Goal(0, new Object[]{new Frozen(new Cache("sys_usage_predicate"), new Object[]{"sys_update_last", 2})}, -1));
        run(new Goal(0, new Object[]{new Frozen(new Cache("sys_usage_predicate"), new Object[]{"sys_style_static", 1})}, -1));
        run(new Goal(0, new Object[]{new Frozen(new Cache("sys_usage_predicate"), new Object[]{"sys_style_head", 1})}, -1));
        run(new Goal(0, new Object[]{new Frozen(new Cache("sys_usage_predicate"), new Object[]{"sys_style_indicator", 2})}, -1));
        run(new Goal(0, new Object[]{new Frozen(new Cache("sys_usage_predicate"), new Object[]{"sys_usage_predicate", 2})}, -1));
        run(new Goal(0, new Object[]{new Frozen(new Cache("sys_usage_predicate"), new Object[]{"sys_include_stream", 2})}, -1));
        run(new Goal(0, new Object[]{new Frozen(new Cache("sys_usage_predicate"), new Object[]{"sys_include_lines", 1})}, -1));
        run(new Goal(0, new Object[]{new Frozen(new Cache("sys_usage_predicate"), new Object[]{"sys_next_term", 1})}, -1));
        run(new Goal(0, new Object[]{new Frozen(new Cache("sys_usage_predicate"), new Object[]{"sys_handle_clump", 1})}, -1));
        run(new Goal(0, new Object[]{new Frozen(new Cache("sys_usage_predicate"), new Object[]{"sys_handle_static", 1})}, -1));
        run(new Goal(0, new Object[]{new Frozen(new Cache("sys_usage_predicate"), new Object[]{"sys_load_type", 3})}, -1));
        run(new Goal(0, new Object[]{new Frozen(new Cache("sys_usage_predicate"), new Object[]{"strings", 3})}, -1));
        run(new Goal(0, new Object[]{new Frozen(new Cache("sys_usage_predicate"), new Object[]{"true", 0})}, -1));
        run(new Goal(0, new Object[]{new Frozen(new Cache("sys_usage_predicate"), new Object[]{"!", 0})}, -1));
        run(new Goal(0, new Object[]{new Frozen(new Cache("sys_usage_predicate"), new Object[]{",", 2})}, -1));
        run(new Goal(0, new Object[]{new Frozen(new Cache("sys_usage_predicate"), new Object[]{";", 2})}, -1));
        run(new Goal(0, new Object[]{new Frozen(new Cache("sys_usage_predicate"), new Object[]{"->", 2})}, -1));
        run(new Goal(0, new Object[]{new Frozen(new Cache("sys_usage_predicate"), new Object[]{"\\=", 2})}, -1));
        run(new Goal(0, new Object[]{new Frozen(new Cache("sys_usage_predicate"), new Object[]{"\\+", 1})}, -1));
        run(new Goal(0, new Object[]{new Frozen(new Cache("sys_usage_predicate"), new Object[]{"once", 1})}, -1));
        run(new Goal(0, new Object[]{new Frozen(new Cache("sys_usage_predicate"), new Object[]{"repeat", 0})}, -1));
        run(new Goal(0, new Object[]{new Frozen(new Cache("sys_usage_predicate"), new Object[]{"catch", 3})}, -1));
        run(new Goal(0, new Object[]{new Frozen(new Cache("sys_usage_predicate"), new Object[]{"sys_error_handler", 3})}, -1));
        run(new Goal(0, new Object[]{new Frozen(new Cache("sys_usage_predicate"), new Object[]{"sys_chain_head", 2})}, -1));
        run(new Goal(0, new Object[]{new Frozen(new Cache("sys_usage_predicate"), new Object[]{"throw", 1})}, -1));
        run(new Goal(0, new Object[]{new Frozen(new Cache("sys_usage_predicate"), new Object[]{"sys_fill_stack", 1})}, -1));
        run(new Goal(0, new Object[]{new Frozen(new Cache("sys_usage_predicate"), new Object[]{"sys_fetch_stack", 1})}, -1));
        run(new Goal(0, new Object[]{new Frozen(new Cache("sys_usage_predicate"), new Object[]{"try_call_finally", 3})}, -1));
        run(new Goal(0, new Object[]{new Frozen(new Cache("sys_usage_predicate"), new Object[]{"ignore", 1})}, -1));
        run(new Goal(0, new Object[]{new Frozen(new Cache("sys_usage_predicate"), new Object[]{"chain", 2})}, -1));
        run(new Goal(0, new Object[]{new Frozen(new Cache("sys_usage_predicate"), new Object[]{"sys_chain_error", 2})}, -1));
        run(new Goal(0, new Object[]{new Frozen(new Cache("sys_usage_predicate"), new Object[]{"sys_chain_raise", 2})}, -1));
        run(new Goal(0, new Object[]{new Frozen(new Cache("sys_usage_predicate"), new Object[]{"sys_chain_concat", 3})}, -1));
        run(new Goal(0, new Object[]{new Frozen(new Cache("sys_usage_predicate"), new Object[]{"once_cleanup", 2})}, -1));
        run(new Goal(0, new Object[]{new Frozen(new Cache("sys_usage_predicate"), new Object[]{"setup_once_cleanup", 3})}, -1));
        run(new Goal(0, new Object[]{new Frozen(new Cache("sys_usage_predicate"), new Object[]{"sys_setup_once_cleanup", 3})}, -1));
        run(new Goal(0, new Object[]{new Frozen(new Cache("sys_usage_predicate"), new Object[]{"sys_once_cleanup", 2})}, -1));
        run(new Goal(0, new Object[]{new Frozen(new Cache("sys_usage_predicate"), new Object[]{"sleep", 1})}, -1));
        run(new Goal(0, new Object[]{new Frozen(new Cache("sys_usage_predicate"), new Object[]{"call_later", 2})}, -1));
        run(new Goal(0, new Object[]{new Frozen(new Cache("sys_usage_predicate"), new Object[]{"call_later", 3})}, -1));
        run(new Goal(0, new Object[]{new Frozen(new Cache("sys_usage_predicate"), new Object[]{"call_with_time_limit", 2})}, -1));
        run(new Goal(0, new Object[]{new Frozen(new Cache("sys_usage_predicate"), new Object[]{"sys_timeout_signal", 1})}, -1));
        run(new Goal(0, new Object[]{new Frozen(new Cache("sys_usage_predicate"), new Object[]{"create_task", 1})}, -1));
        run(new Goal(0, new Object[]{new Frozen(new Cache("sys_usage_predicate"), new Object[]{"create_task", 2})}, -1));
        run(new Goal(0, new Object[]{new Frozen(new Cache("sys_usage_predicate"), new Object[]{"sys_frost_horn", 3})}, -1));
        run(new Goal(0, new Object[]{new Frozen(new Cache("sys_usage_predicate"), new Object[]{"sys_host_ossify", 2})}, -1));
        run(new Goal(0, new Object[]{new Frozen(new Cache("sys_usage_predicate"), new Object[]{"member", 2})}, -1));
        run(new Goal(0, new Object[]{new Frozen(new Cache("sys_usage_predicate"), new Object[]{"sys_member", 3})}, -1));
        run(new Goal(0, new Object[]{new Frozen(new Cache("sys_usage_predicate"), new Object[]{"select", 3})}, -1));
        run(new Goal(0, new Object[]{new Frozen(new Cache("sys_usage_predicate"), new Object[]{"sys_select", 4})}, -1));
        run(new Goal(0, new Object[]{new Frozen(new Cache("sys_usage_predicate"), new Object[]{"reverse", 2})}, -1));
        run(new Goal(0, new Object[]{new Frozen(new Cache("sys_usage_predicate"), new Object[]{"sys_reverse", 3})}, -1));
        run(new Goal(0, new Object[]{new Frozen(new Cache("sys_usage_predicate"), new Object[]{"append", 3})}, -1));
        run(new Goal(0, new Object[]{new Frozen(new Cache("sys_usage_predicate"), new Object[]{"length", 2})}, -1));
        run(new Goal(0, new Object[]{new Frozen(new Cache("sys_usage_predicate"), new Object[]{"sys_length", 3})}, -1));
        run(new Goal(0, new Object[]{new Frozen(new Cache("sys_usage_predicate"), new Object[]{"sys_length", 2})}, -1));
        run(new Goal(0, new Object[]{new Frozen(new Cache("sys_usage_predicate"), new Object[]{"between", 3})}, -1));
        run(new Goal(0, new Object[]{new Frozen(new Cache("sys_usage_predicate"), new Object[]{"sys_between", 3})}, -1));
        run(new Goal(0, new Object[]{new Frozen(new Cache("sys_usage_predicate"), new Object[]{"findall", 3})}, -1));
        run(new Goal(0, new Object[]{new Frozen(new Cache("sys_usage_predicate"), new Object[]{"sys_find_init", 1})}, -1));
        run(new Goal(0, new Object[]{new Frozen(new Cache("sys_usage_predicate"), new Object[]{"sys_find_next", 2})}, -1));
        run(new Goal(0, new Object[]{new Frozen(new Cache("sys_usage_predicate"), new Object[]{"sys_find_fini", 2})}, -1));
        run(new Goal(0, new Object[]{new Frozen(new Cache("sys_usage_predicate"), new Object[]{"get_message", 3})}, -1));
        run(new Goal(0, new Object[]{new Frozen(new Cache("sys_usage_predicate"), new Object[]{"get_message", 4})}, -1));
        run(new Goal(0, new Object[]{new Frozen(new Cache("sys_usage_predicate"), new Object[]{"sys_get_string", 2})}, -1));
        run(new Goal(0, new Object[]{new Frozen(new Cache("sys_usage_predicate"), new Object[]{"sys_get_string", 3})}, -1));
        run(new Goal(0, new Object[]{new Frozen(new Cache("sys_usage_predicate"), new Object[]{"sys_locale_ancestor", 2})}, -1));
        run(new Goal(0, new Object[]{new Frozen(new Cache("sys_usage_predicate"), new Object[]{"sys_multiton_keys", 3})}, -1));
        run(new Goal(0, new Object[]{new Frozen(new Cache("sys_usage_predicate"), new Object[]{"sys_multiton_check", 1})}, -1));
        run(new Goal(0, new Object[]{new Frozen(new Cache("sys_usage_predicate"), new Object[]{"sys_singleton_keys", 2})}, -1));
        run(new Goal(0, new Object[]{new Frozen(new Cache("sys_usage_predicate"), new Object[]{"sys_singleton_check", 1})}, -1));
        run(new Goal(0, new Object[]{new Frozen(new Cache("sys_usage_predicate"), new Object[]{"sys_marked_at", 3})}, -1));
        run(new Goal(0, new Object[]{new Frozen(new Cache("sys_usage_predicate"), new Object[]{"expand_term", 2})}, -1));
        run(new Goal(0, new Object[]{new Frozen(new Cache("sys_usage_predicate"), new Object[]{"phrase", 3})}, -1));
        run(new Goal(0, new Object[]{new Frozen(new Cache("sys_usage_predicate"), new Object[]{"term_expansion", 2})}, -1));
        run(new Goal(0, new Object[]{new Frozen(new Cache("sys_usage_predicate"), new Object[]{"sys_dcg_expansion", 3})}, -1));
        run(new Goal(0, new Object[]{new Frozen(new Cache("sys_usage_predicate"), new Object[]{"sys_phrase_expansion", 6})}, -1));
        run(new Goal(0, new Object[]{new Frozen(new Cache("sys_usage_predicate"), new Object[]{"sys_list_expansion", 3})}, -1));
        run(new Goal(0, new Object[]{new Frozen(new Cache("sys_usage_predicate"), new Object[]{"sub_atom", 5})}, -1));
        run(new Goal(0, new Object[]{new Frozen(new Cache("sys_usage_predicate"), new Object[]{"last_sub_atom", 5})}, -1));
        run(new Goal(0, new Object[]{new Frozen(new Cache("sys_usage_predicate"), new Object[]{"strings", 3})}, -1));
        run(new Goal(0, new Object[]{new Frozen(new Cache("sys_usage_predicate"), new Object[]{"dynamic", 1})}, -1));
        run(new Goal(0, new Object[]{new Frozen(new Cache("sys_usage_predicate"), new Object[]{"prehash", 1})}, -1));
        run(new Goal(0, new Object[]{new Frozen(new Cache("sys_usage_predicate"), new Object[]{"asserta", 1})}, -1));
        run(new Goal(0, new Object[]{new Frozen(new Cache("sys_usage_predicate"), new Object[]{"assertz", 1})}, -1));
        run(new Goal(0, new Object[]{new Frozen(new Cache("sys_usage_predicate"), new Object[]{"clause", 2})}, -1));
        run(new Goal(0, new Object[]{new Frozen(new Cache("sys_usage_predicate"), new Object[]{"retract", 1})}, -1));
        run(new Goal(0, new Object[]{new Frozen(new Cache("sys_usage_predicate"), new Object[]{"retractall", 1})}, -1));
        run(new Goal(0, new Object[]{new Frozen(new Cache("sys_usage_predicate"), new Object[]{"abolish", 1})}, -1));
        run(new Goal(0, new Object[]{new Frozen(new Cache("sys_usage_predicate"), new Object[]{"sys_abolish", 2})}, -1));
        run(new Goal(0, new Object[]{new Frozen(new Cache("sys_usage_predicate"), new Object[]{"sys_predprop", 3})}, -1));
        run(new Goal(0, new Object[]{new Frozen(new Cache("sys_usage_predicate"), new Object[]{"current_predicate", 1})}, -1));
        run(new Goal(0, new Object[]{new Frozen(new Cache("sys_usage_predicate"), new Object[]{"predicate_property", 2})}, -1));
        run(new Goal(0, new Object[]{new Frozen(new Cache("sys_usage_predicate"), new Object[]{"sys_predprop_get", 3})}, -1));
        run(new Goal(0, new Object[]{new Frozen(new Cache("sys_usage_predicate"), new Object[]{"sys_predprop_flag", 2})}, -1));
        run(new Goal(0, new Object[]{new Frozen(new Cache("sys_usage_predicate"), new Object[]{"sys_emulated", 2})}, -1));
        run(new Goal(0, new Object[]{new Frozen(new Cache("sys_usage_predicate"), new Object[]{"set_prolog_flag", 2})}, -1));
        run(new Goal(0, new Object[]{new Frozen(new Cache("sys_usage_predicate"), new Object[]{"sys_prolog_flag_set", 2})}, -1));
        run(new Goal(0, new Object[]{new Frozen(new Cache("sys_usage_predicate"), new Object[]{"current_prolog_flag", 2})}, -1));
        run(new Goal(0, new Object[]{new Frozen(new Cache("sys_usage_predicate"), new Object[]{"sys_prolog_flag_get", 2})}, -1));
        run(new Goal(0, new Object[]{new Frozen(new Cache("sys_usage_predicate"), new Object[]{"sys_prolog_flag_decode", 3})}, -1));
        run(new Goal(0, new Object[]{new Frozen(new Cache("sys_usage_predicate"), new Object[]{"vars_intersection", 3})}, -1));
        run(new Goal(0, new Object[]{new Frozen(new Cache("sys_usage_predicate"), new Object[]{"vars_subtract", 3})}, -1));
        run(new Goal(0, new Object[]{new Frozen(new Cache("sys_usage_predicate"), new Object[]{"sys_including", 3})}, -1));
    }
}
