package Ġit . uni bo . tup ro log . collections . impl Ċ Ċ import Ġit . uni bo . tup ro log . collections . Abstract Mutable Ret e Clause Collection Ċ import Ġit . uni bo . tup ro log . collections . Mutable Clause Queue Ċ import Ġit . uni bo . tup ro log . collections . Retrieve Result Ċ import Ġit . uni bo . tup ro log . collections . re te . custom . Ret e Tree Ċ import Ġit . uni bo . tup ro log . core . Clause Ċ import Ġit . uni bo . tup ro log . theory . Theory Utils Ċ Ċ internal Ġclass ĠMutable Ret e Clause Queue Ġprivate Ġconstructor ( ĊĠĠĠ Ġre te : ĠRet e Tree Ċ ) Ġ: ĠMutable Clause Queue , ĠAbstract Mutable Ret e Clause Collection < Mutable Ret e Clause Queue >( re te ) Ġ{ ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġrequire ( re te . is Ordered ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĠConstruct Ġa Ġ[ Mutable Ret e Clause Queue ] Ġfrom Ġgiven Ġclauses Ġ*/ ĊĠĠĠ Ġconstructor ( clauses : ĠIterable < Clause >) Ġ: Ġthis ( Ret e Tree . ordered ( clauses )) Ġ{ ĊĠĠĠĠĠĠĠ ĠTheory Utils . check Clause s Correct ( clauses ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Fifo Ordered ( clause : ĠClause ): ĠSequence < Clause > Ġ= ĊĠĠĠĠĠĠĠ Ġre te . get ( clause ) ĊĊĠĠĠ Ġoverride Ġfun Ġget L ifo Ordered ( clause : ĠClause ): ĠSequence < Clause > Ġ= ĊĠĠĠĠĠĠĠ Ġget Fifo Ordered ( clause ). toList (). as Re versed (). as Sequence () ĊĊĠĠĠ Ġoverride Ġfun Ġadd First ( clause : ĠClause ): ĠMutable Ret e Clause Queue Ġ{ ĊĠĠĠĠĠĠĠ Ġre te . assert A ( clause ) ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġadd Last ( clause : ĠClause ): ĠMutable Ret e Clause Queue Ġ{ ĊĠĠĠĠĠĠĠ Ġre te . assert Z ( clause ) ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġretrieve First ( clause : ĠClause ): ĠRetrieve Result < out ĠMutable Ret e Clause Queue > Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġre tract ed Ġ= Ġre te . re tract First ( clause ) ĊĊĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġre tract ed . none () Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠRetrieve Result . Failure ( this ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠRetrieve Result . Success ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġre tract ed . toList () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġequals ( other : ĠAny ?): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( other Ġis ĠMutable Clause Queue ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMutable Clause Queue . equals ( this , Ġother ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠhashCode (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠMutable Clause Queue . hashCode ( this ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġval Ġself : ĠMutable Ret e Clause Queue ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġthis Ċ } Ċ