package Ġcom . github . pro log db . runtime . builtin Ċ Ċ import Ġcom . github . pro log db . runtime . term . Atom Ċ import Ġcom . github . pro log db . runtime . un ification . Un ification Ċ Ċ /** ĠImplements Ġthe Ġbuiltin Ġ@ </ 2 Ġ*/ Ċ val ĠBuiltin Term LessThan Ġ= Ġnative Predicate ("@ < ", Ġ 2 ) Ġ{ Ġargs , Ġ_ Ġ-> ĊĠĠĠ Ġif Ġ( args [ 0 ] Ġ< Ġargs [ 1 ]) Ġyield ( Un ification . TRUE ) Ċ } Ċ Ċ /** ĠImplements Ġthe Ġbuiltin Ġ@ =</ 2 Ġ*/ Ċ val ĠBuiltin Term LessThan OrEqual Ġ= Ġnative Predicate ("@ =< ", Ġ 2 ) Ġ{ Ġargs , Ġ_ Ġ-> ĊĠĠĠ Ġif Ġ( args [ 0 ] Ġ<= Ġargs [ 1 ]) Ġyield ( Un ification . TRUE ) Ċ } Ċ Ċ /** ĠImplements Ġthe Ġbuiltin Ġ@ >/ 2 Ġ*/ Ċ val ĠBuiltin Term GreaterThan Ġ= Ġnative Predicate ("@ >", Ġ 2 ) Ġ{ Ġargs , Ġ_ Ġ-> ĊĠĠĠ Ġif Ġ( args [ 0 ] Ġ> Ġargs [ 1 ]) Ġyield ( Un ification . TRUE ) Ċ } Ċ Ċ /** ĠImplements Ġthe Ġbuiltin Ġ@ >= / 2 Ġ*/ Ċ val ĠBuiltin Term GreaterThan OrEqual Ġ= Ġnative Predicate ("@ > =", Ġ 2 ) Ġ{ Ġargs , Ġ_ Ġ-> ĊĠĠĠ Ġif Ġ( args [ 0 ] Ġ>= Ġargs [ 1 ]) Ġyield ( Un ification . TRUE ) Ċ } Ċ Ċ private Ġval ĠAtom LessThan Ġ= ĠAtom ("< ") Ċ private Ġval ĠAtom GreaterThan Ġ= ĠAtom ("< ") Ċ private Ġval ĠAtom Equal Ġ= ĠAtom (" =") Ċ val ĠBuiltin Compare Ġ= Ġnative Predicate (" compare ", Ġ 3 ) Ġ{ Ġargs , Ġctxt Ġ-> ĊĠĠĠ Ġval Ġinput For Order Ġ= Ġargs [ 0 ] ĊĊĠĠĠ Ġval Ġactual Order Ġ= Ġwhen Ġ{ ĊĠĠĠĠĠĠĠ Ġargs [ 0 ] Ġ> Ġargs [ 1 ] Ġ-> ĠAtom GreaterThan ĊĠĠĠĠĠĠĠ Ġargs [ 0 ] Ġ< Ġargs [ 1 ] Ġ-> ĠAtom LessThan ĊĠĠĠĠĠĠĠ Ġelse ĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ-> ĠAtom Equal ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġun ification Ġ= Ġinput For Order . un ify ( actual Order , Ġctxt . random Variable Scope ) ĊĠĠĠ Ġif Ġ( un ification Ġ!= Ġnull ) Ġyield ( un ification ) Ċ } Ċ Ċ /** Ċ Ġ* ĠDefines Ġpredicates Ġfor Ġthe Ġstandard Ġorder Ġof Ġterms . Ċ Ġ*/ Ċ val ĠComparison Module Ġ= Ġnative Module (" comparison ") Ġ{ ĊĠĠĠ Ġadd ( Builtin Term LessThan ) ĊĠĠĠ Ġadd ( Builtin Term LessThan OrEqual ) ĊĠĠĠ Ġadd ( Builtin Term GreaterThan ) ĊĠĠĠ Ġadd ( Builtin Term GreaterThan OrEqual ) ĊĠĠĠ Ġadd ( Builtin Compare ) Ċ } Ċ