package Ġit . uni bo . tup ro log . solve Ċ Ċ /** Ċ Ġ* ĠTests Ġof ĠTerm Ġdiff , Ġeq , Ġgt , Ġgt _ eq , Ġlt , Ġlt _ eq Ċ Ġ*/ Ċ interface ĠTest Term Ġ: ĠSolver Test Ġ{ ĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġprototype ( solver Factory : ĠSolver Factory ): ĠTest Term Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTest Term Impl ( solver Factory ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠTests Ġthe Ġqueries ĊĠĠĠĠ Ġ* Ġ``` pro log ĊĠĠĠĠ Ġ* Ġ? - Ġ'\\ ==' ( 1 , 1 ). ĊĠĠĠĠ Ġ* Ġ``` ĊĠĠĠĠ Ġ* Ġfails Ġon Ġa Ġsolver Ġinitialized Ġwith Ġdefault Ġbuilt - ins Ġand Ġwith Ġand Ġempty Ġtheory . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ``` pro log ĊĠĠĠĠ Ġ* Ġ? - Ġ'\\ ==' ( X , X ). ĊĠĠĠĠ Ġ* Ġ``` ĊĠĠĠĠ Ġ* Ġfails Ġon Ġa Ġsolver Ġinitialized Ġwith Ġdefault Ġbuilt - ins Ġand Ġwith Ġand Ġempty Ġtheory . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ``` pro log ĊĠĠĠĠ Ġ* Ġ? - Ġ'\\ ==' ( 1 , 2 ). ĊĠĠĠĠ Ġ* Ġ``` ĊĠĠĠĠ Ġ* Ġsucceeds Ġon Ġa Ġsolver Ġinitialized Ġwith Ġdefault Ġbuilt - ins Ġand Ġwith Ġand Ġempty Ġtheory . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ``` pro log ĊĠĠĠĠ Ġ* Ġ? - Ġ'\\ ==' ( X , 1 ). ĊĠĠĠĠ Ġ* Ġ``` ĊĠĠĠĠ Ġ* Ġsucceeds Ġon Ġa Ġsolver Ġinitialized Ġwith Ġdefault Ġbuilt - ins Ġand Ġwith Ġand Ġempty Ġtheory . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ``` pro log ĊĠĠĠĠ Ġ* Ġ? - Ġ'\\ ==' ( X , Y ). ĊĠĠĠĠ Ġ* Ġ``` ĊĠĠĠĠ Ġ* Ġsucceeds Ġon Ġa Ġsolver Ġinitialized Ġwith Ġdefault Ġbuilt - ins Ġand Ġwith Ġand Ġempty Ġtheory . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ``` pro log ĊĠĠĠĠ Ġ* Ġ? - Ġ'\\ ==' (_ ,_ ). ĊĠĠĠĠ Ġ* Ġ``` ĊĠĠĠĠ Ġ* Ġsucceeds Ġon Ġa Ġsolver Ġinitialized Ġwith Ġdefault Ġbuilt - ins Ġand Ġwith Ġand Ġempty Ġtheory . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ``` pro log ĊĠĠĠĠ Ġ* Ġ? - Ġ'\\ ==' ( X , a ( X )). ĊĠĠĠĠ Ġ* Ġ``` ĊĠĠĠĠ Ġ* Ġsucceeds Ġon Ġa Ġsolver Ġinitialized Ġwith Ġdefault Ġbuilt - ins Ġand Ġwith Ġand Ġempty Ġtheory . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ``` pro log ĊĠĠĠĠ Ġ* Ġ? - Ġ'\\ ==' ( f ( a ), f ( a )). ĊĠĠĠĠ Ġ* Ġ``` ĊĠĠĠĠ Ġ* Ġfails Ġon Ġa Ġsolver Ġinitialized Ġwith Ġdefault Ġbuilt - ins Ġand Ġwith Ġand Ġempty Ġtheory . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġtest Term Diff () ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠTests Ġthe Ġqueries ĊĠĠĠĠ Ġ* Ġ``` pro log ĊĠĠĠĠ Ġ* Ġ? - Ġ' ==' ( 1 , 1 ). ĊĠĠĠĠ Ġ* Ġ``` ĊĠĠĠĠ Ġ* Ġsucceeds Ġon Ġa Ġsolver Ġinitialized Ġwith Ġdefault Ġbuilt - ins Ġand Ġwith Ġand Ġempty Ġtheory . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ``` pro log ĊĠĠĠĠ Ġ* Ġ? - Ġ' ==' ( X , X ). ĊĠĠĠĠ Ġ* Ġ``` ĊĠĠĠĠ Ġ* Ġsucceeds Ġon Ġa Ġsolver Ġinitialized Ġwith Ġdefault Ġbuilt - ins Ġand Ġwith Ġand Ġempty Ġtheory . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ``` pro log ĊĠĠĠĠ Ġ* Ġ? - Ġ' ==' ( 1 , 2 ). ĊĠĠĠĠ Ġ* Ġ``` ĊĠĠĠĠ Ġ* Ġfails Ġon Ġa Ġsolver Ġinitialized Ġwith Ġdefault Ġbuilt - ins Ġand Ġwith Ġand Ġempty Ġtheory . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ``` pro log ĊĠĠĠĠ Ġ* Ġ? - Ġ' ==' ( X , 1 ). ĊĠĠĠĠ Ġ* Ġ``` ĊĠĠĠĠ Ġ* Ġfails Ġon Ġa Ġsolver Ġinitialized Ġwith Ġdefault Ġbuilt - ins Ġand Ġwith Ġand Ġempty Ġtheory . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ``` pro log ĊĠĠĠĠ Ġ* Ġ? - Ġ' ==' ( X , Y ). ĊĠĠĠĠ Ġ* Ġ``` ĊĠĠĠĠ Ġ* Ġfails Ġon Ġa Ġsolver Ġinitialized Ġwith Ġdefault Ġbuilt - ins Ġand Ġwith Ġand Ġempty Ġtheory . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ``` pro log ĊĠĠĠĠ Ġ* Ġ? - Ġ' ==' (_ ,_ ). ĊĠĠĠĠ Ġ* Ġ``` ĊĠĠĠĠ Ġ* Ġfails Ġon Ġa Ġsolver Ġinitialized Ġwith Ġdefault Ġbuilt - ins Ġand Ġwith Ġand Ġempty Ġtheory . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ``` pro log ĊĠĠĠĠ Ġ* Ġ? - Ġ' ==' ( X , a ( X )). ĊĠĠĠĠ Ġ* Ġ``` ĊĠĠĠĠ Ġ* Ġfails Ġon Ġa Ġsolver Ġinitialized Ġwith Ġdefault Ġbuilt - ins Ġand Ġwith Ġand Ġempty Ġtheory . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ``` pro log ĊĠĠĠĠ Ġ* Ġ? - Ġ' ==' ( f ( a ), f ( a )). ĊĠĠĠĠ Ġ* Ġ``` ĊĠĠĠĠ Ġ* Ġsucceeds Ġon Ġa Ġsolver Ġinitialized Ġwith Ġdefault Ġbuilt - ins Ġand Ġwith Ġand Ġempty Ġtheory . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġtest Term Eq () ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠTests Ġthe Ġqueries ĊĠĠĠĠ Ġ* Ġ``` pro log ĊĠĠĠĠ Ġ* Ġ? - Ġ'@ >' ( 1 . 0 , 1 ). ĊĠĠĠĠ Ġ* Ġ``` ĊĠĠĠĠ Ġ* Ġfails Ġon Ġa Ġsolver Ġinitialized Ġwith Ġdefault Ġbuilt - ins Ġand Ġwith Ġand Ġempty Ġtheory . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ``` pro log ĊĠĠĠĠ Ġ* Ġ? - Ġ'@ >' ( a ard var k , ze bra ). ĊĠĠĠĠ Ġ* Ġ``` ĊĠĠĠĠ Ġ* Ġfails Ġon Ġa Ġsolver Ġinitialized Ġwith Ġdefault Ġbuilt - ins Ġand Ġwith Ġand Ġempty Ġtheory . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ``` pro log ĊĠĠĠĠ Ġ* Ġ? - Ġ'@ >' ( short , short ). ĊĠĠĠĠ Ġ* Ġ``` ĊĠĠĠĠ Ġ* Ġfails Ġon Ġa Ġsolver Ġinitialized Ġwith Ġdefault Ġbuilt - ins Ġand Ġwith Ġand Ġempty Ġtheory . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ``` pro log ĊĠĠĠĠ Ġ* Ġ? - Ġ'@ >' ( short , short er ). ĊĠĠĠĠ Ġ* Ġ``` ĊĠĠĠĠ Ġ* Ġfails Ġon Ġa Ġsolver Ġinitialized Ġwith Ġdefault Ġbuilt - ins Ġand Ġwith Ġand Ġempty Ġtheory . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ``` pro log ĊĠĠĠĠ Ġ* Ġ? - Ġ'@ >' ( foo ( b ), foo ( a )). ĊĠĠĠĠ Ġ* Ġ``` ĊĠĠĠĠ Ġ* Ġsucceeds Ġon Ġa Ġsolver Ġinitialized Ġwith Ġdefault Ġbuilt - ins Ġand Ġwith Ġand Ġempty Ġtheory . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ``` pro log ĊĠĠĠĠ Ġ* Ġ? - Ġ'@ >' ( X , X ). ĊĠĠĠĠ Ġ* Ġ``` ĊĠĠĠĠ Ġ* Ġfails Ġon Ġa Ġsolver Ġinitialized Ġwith Ġdefault Ġbuilt - ins Ġand Ġwith Ġand Ġempty Ġtheory . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ``` pro log ĊĠĠĠĠ Ġ* Ġ? - Ġ'@ >' ( foo ( a , X ), foo ( b , Y )). ĊĠĠĠĠ Ġ* Ġ``` ĊĠĠĠĠ Ġ* Ġfails Ġon Ġa Ġsolver Ġinitialized Ġwith Ġdefault Ġbuilt - ins Ġand Ġwith Ġand Ġempty Ġtheory . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġtest Term GreaterThan () ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠTests Ġthe Ġqueries ĊĠĠĠĠ Ġ* Ġ``` pro log ĊĠĠĠĠ Ġ* Ġ? - Ġ'@ > =' ( 1 . 0 , 1 ). ĊĠĠĠĠ Ġ* Ġ``` ĊĠĠĠĠ Ġ* Ġfails Ġon Ġa Ġsolver Ġinitialized Ġwith Ġdefault Ġbuilt - ins Ġand Ġwith Ġand Ġempty Ġtheory . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ``` pro log ĊĠĠĠĠ Ġ* Ġ? - Ġ'@ > =' ( a ard var k , ze bra ). ĊĠĠĠĠ Ġ* Ġ``` ĊĠĠĠĠ Ġ* Ġfails Ġon Ġa Ġsolver Ġinitialized Ġwith Ġdefault Ġbuilt - ins Ġand Ġwith Ġand Ġempty Ġtheory . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ``` pro log ĊĠĠĠĠ Ġ* Ġ? - Ġ'@ > =' ( short , short ). ĊĠĠĠĠ Ġ* Ġ``` ĊĠĠĠĠ Ġ* Ġsucceeds Ġon Ġa Ġsolver Ġinitialized Ġwith Ġdefault Ġbuilt - ins Ġand Ġwith Ġand Ġempty Ġtheory . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ``` pro log ĊĠĠĠĠ Ġ* Ġ? - Ġ'@ > =' ( short , short er ). ĊĠĠĠĠ Ġ* Ġ``` ĊĠĠĠĠ Ġ* Ġfails Ġon Ġa Ġsolver Ġinitialized Ġwith Ġdefault Ġbuilt - ins Ġand Ġwith Ġand Ġempty Ġtheory . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ``` pro log ĊĠĠĠĠ Ġ* Ġ? - Ġ'@ > =' ( foo ( b ), foo ( a )). ĊĠĠĠĠ Ġ* Ġ``` ĊĠĠĠĠ Ġ* Ġsucceeds Ġon Ġa Ġsolver Ġinitialized Ġwith Ġdefault Ġbuilt - ins Ġand Ġwith Ġand Ġempty Ġtheory . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ``` pro log ĊĠĠĠĠ Ġ* Ġ? - Ġ'@ > =' ( X , X ). ĊĠĠĠĠ Ġ* Ġ``` ĊĠĠĠĠ Ġ* Ġsucceeds Ġon Ġa Ġsolver Ġinitialized Ġwith Ġdefault Ġbuilt - ins Ġand Ġwith Ġand Ġempty Ġtheory . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ``` pro log ĊĠĠĠĠ Ġ* Ġ? - Ġ'@ > =' ( foo ( a , X ), foo ( b , Y )). ĊĠĠĠĠ Ġ* Ġ``` ĊĠĠĠĠ Ġ* Ġfails Ġon Ġa Ġsolver Ġinitialized Ġwith Ġdefault Ġbuilt - ins Ġand Ġwith Ġand Ġempty Ġtheory . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġtest Term GreaterThan Eq () ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠTests Ġthe Ġqueries ĊĠĠĠĠ Ġ* Ġ``` pro log ĊĠĠĠĠ Ġ* Ġ? - Ġ'@ <' ( 1 . 0 , 1 ). ĊĠĠĠĠ Ġ* Ġ``` ĊĠĠĠĠ Ġ* Ġsucceeds Ġon Ġa Ġsolver Ġinitialized Ġwith Ġdefault Ġbuilt - ins Ġand Ġwith Ġand Ġempty Ġtheory . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ``` pro log ĊĠĠĠĠ Ġ* Ġ? - Ġ'@ <' ( a ard var k , ze bra ). ĊĠĠĠĠ Ġ* Ġ``` ĊĠĠĠĠ Ġ* Ġsucceeds Ġon Ġa Ġsolver Ġinitialized Ġwith Ġdefault Ġbuilt - ins Ġand Ġwith Ġand Ġempty Ġtheory . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ``` pro log ĊĠĠĠĠ Ġ* Ġ? - Ġ'@ <' ( short , short ). ĊĠĠĠĠ Ġ* Ġ``` ĊĠĠĠĠ Ġ* Ġfails Ġon Ġa Ġsolver Ġinitialized Ġwith Ġdefault Ġbuilt - ins Ġand Ġwith Ġand Ġempty Ġtheory . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ``` pro log ĊĠĠĠĠ Ġ* Ġ? - Ġ'@ <' ( short , short er ). ĊĠĠĠĠ Ġ* Ġ``` ĊĠĠĠĠ Ġ* Ġsucceeds Ġon Ġa Ġsolver Ġinitialized Ġwith Ġdefault Ġbuilt - ins Ġand Ġwith Ġand Ġempty Ġtheory . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ``` pro log ĊĠĠĠĠ Ġ* Ġ? - Ġ'@ <' ( foo ( b ), foo ( a )). ĊĠĠĠĠ Ġ* Ġ``` ĊĠĠĠĠ Ġ* Ġfails Ġon Ġa Ġsolver Ġinitialized Ġwith Ġdefault Ġbuilt - ins Ġand Ġwith Ġand Ġempty Ġtheory . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ``` pro log ĊĠĠĠĠ Ġ* Ġ? - Ġ'@ <' ( X , X ). ĊĠĠĠĠ Ġ* Ġ``` ĊĠĠĠĠ Ġ* Ġfails Ġon Ġa Ġsolver Ġinitialized Ġwith Ġdefault Ġbuilt - ins Ġand Ġwith Ġand Ġempty Ġtheory . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ``` pro log ĊĠĠĠĠ Ġ* Ġ? - Ġ'@ <' ( foo ( a , X ), foo ( b , Y )). ĊĠĠĠĠ Ġ* Ġ``` ĊĠĠĠĠ Ġ* Ġsucceeds Ġon Ġa Ġsolver Ġinitialized Ġwith Ġdefault Ġbuilt - ins Ġand Ġwith Ġand Ġempty Ġtheory . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġtest Term LessThan () ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠTests Ġthe Ġqueries ĊĠĠĠĠ Ġ* Ġ``` pro log ĊĠĠĠĠ Ġ* Ġ? - Ġ'@ = <' ( 1 . 0 , 1 ). ĊĠĠĠĠ Ġ* Ġ``` ĊĠĠĠĠ Ġ* Ġsucceeds Ġon Ġa Ġsolver Ġinitialized Ġwith Ġdefault Ġbuilt - ins Ġand Ġwith Ġand Ġempty Ġtheory . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ``` pro log ĊĠĠĠĠ Ġ* Ġ? - Ġ'@ = <' ( a ard var k , ze bra ). ĊĠĠĠĠ Ġ* Ġ``` ĊĠĠĠĠ Ġ* Ġsucceeds Ġon Ġa Ġsolver Ġinitialized Ġwith Ġdefault Ġbuilt - ins Ġand Ġwith Ġand Ġempty Ġtheory . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ``` pro log ĊĠĠĠĠ Ġ* Ġ? - Ġ'@ = <' ( short , short ). ĊĠĠĠĠ Ġ* Ġ``` ĊĠĠĠĠ Ġ* Ġsucceeds Ġon Ġa Ġsolver Ġinitialized Ġwith Ġdefault Ġbuilt - ins Ġand Ġwith Ġand Ġempty Ġtheory . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ``` pro log ĊĠĠĠĠ Ġ* Ġ? - Ġ'@ = <' ( short , short er ). ĊĠĠĠĠ Ġ* Ġ``` ĊĠĠĠĠ Ġ* Ġsucceeds Ġon Ġa Ġsolver Ġinitialized Ġwith Ġdefault Ġbuilt - ins Ġand Ġwith Ġand Ġempty Ġtheory . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ``` pro log ĊĠĠĠĠ Ġ* Ġ? - Ġ'@ = <' ( foo ( b ), foo ( a )). ĊĠĠĠĠ Ġ* Ġ``` ĊĠĠĠĠ Ġ* Ġfails Ġon Ġa Ġsolver Ġinitialized Ġwith Ġdefault Ġbuilt - ins Ġand Ġwith Ġand Ġempty Ġtheory . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ``` pro log ĊĠĠĠĠ Ġ* Ġ? - Ġ'@ = <' ( X , X ). ĊĠĠĠĠ Ġ* Ġ``` ĊĠĠĠĠ Ġ* Ġsucceeds Ġon Ġa Ġsolver Ġinitialized Ġwith Ġdefault Ġbuilt - ins Ġand Ġwith Ġand Ġempty Ġtheory . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ``` pro log ĊĠĠĠĠ Ġ* Ġ? - Ġ'@ = <' ( foo ( a , X ), foo ( b , Y )). ĊĠĠĠĠ Ġ* Ġ``` ĊĠĠĠĠ Ġ* Ġsucceeds Ġon Ġa Ġsolver Ġinitialized Ġwith Ġdefault Ġbuilt - ins Ġand Ġwith Ġand Ġempty Ġtheory . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġtest Term LessThan Eq () Ċ } Ċ