:- module prolog.
:- use_module builtin, int, list, private_builtin, require, std_util.
prolog:(X_3 =:= X_3).
prolog:(X_3 =\= Y_4) :-
		\+ (
			X_3 = Y_4
		).
prolog:(X_3 == X_3).
prolog:(X_3 \== Y_4) :-
		\+ (
			X_3 = Y_4
		).
prolog:(Term_3 =.. (std_util:(Functor_4 - Args_5))) :-
		std_util:deconstruct(Term_3, Functor_4, _Arity_6, Args_5).
prolog:arg(ArgumentIndex_4, Type_5, HeadVar__3_3) :-
		HeadVar__3_3 = std_util:argument(Type_5, V_6),
		V_6 = int:(ArgumentIndex_4 - V_7),
		V_7 = 1.
:- pragma termination_info(prolog:'=:='((builtin:in), (builtin:in)), finite(0, [no, no, no]), cannot_loop).
:- pragma termination_info(prolog:'=\\='((builtin:in), (builtin:in)), finite(0, [no, no, no]), cannot_loop).
:- pragma termination_info(prolog:'=='((builtin:in), (builtin:in)), finite(0, [no, no, no]), cannot_loop).
:- pragma termination_info(prolog:'\\=='((builtin:in), (builtin:in)), finite(0, [no, no, no]), cannot_loop).
:- pragma termination_info(prolog:'=..'((builtin:in), (builtin:out)), infinite, can_loop).
:- pragma termination_info(prolog:arg((builtin:in), (builtin:in), (builtin:out)), infinite, can_loop).
:- pragma termination_info(prolog:det_arg((builtin:in), (builtin:in), (builtin:out)), infinite, can_loop).
