package Ġit . uni bo . tup ro log . theory Ċ Ċ import Ġit . uni bo . tup ro log . core . Clause Ċ import Ġit . uni bo . tup ro log . core . Fact Ċ import Ġit . uni bo . tup ro log . core . Indicator Ċ import Ġit . uni bo . tup ro log . core . Rule Ċ import Ġit . uni bo . tup ro log . core . Scope Ċ import Ġit . uni bo . tup ro log . core . Struct Ċ import Ġit . uni bo . tup ro log . core . Var Ċ import Ġit . uni bo . tup ro log . theory . impl . Mutable Indexed Theory Ċ import Ġit . uni bo . tup ro log . theory . impl . Mutable List ed Theory Ċ import Ġkotlin . js . Js Name Ċ import Ġkotlin . jvm . Jvm Static Ċ Ċ interface ĠMutable Theory Ġ: ĠTheory Ġ{ ĊĊĠĠĠ Ġoverride Ġval Ġis Mutable : ĠBoolean Ġget () Ġ= Ġtrue ĊĊĠĠĠ Ġoverride Ġfun Ġto Mutable Theory (): ĠMutable Theory Ġ= Ġthis ĊĊĠĠĠ Ġoverride Ġoperator Ġfun Ġplus ( theory : ĠTheory ): ĠMutable Theory ĊĊĠĠĠ Ġoverride Ġoperator Ġfun Ġplus ( clause : ĠClause ): ĠMutable Theory Ġ= Ġassert Z ( clause ) ĊĊĠĠĠ Ġoverride Ġfun Ġassert A ( clause : ĠClause ): ĠMutable Theory ĊĊĠĠĠ Ġoverride Ġfun Ġassert A ( struct : ĠStruct ): ĠMutable Theory Ġ= Ġassert A ( Fact . of ( struct )) ĊĊĠĠĠ Ġoverride Ġfun Ġassert A ( clauses : ĠIterable < Clause >): ĠMutable Theory ĊĊĠĠĠ Ġoverride Ġfun Ġassert A ( clauses : ĠSequence < Clause >): ĠMutable Theory ĊĊĠĠĠ Ġoverride Ġfun Ġassert Z ( clause : ĠClause ): ĠMutable Theory ĊĊĠĠĠ Ġoverride Ġfun Ġassert Z ( struct : ĠStruct ): ĠMutable Theory Ġ= Ġassert Z ( Fact . of ( struct )) ĊĊĠĠĠ Ġoverride Ġfun Ġassert Z ( clauses : ĠIterable < Clause >): ĠMutable Theory ĊĊĠĠĠ Ġoverride Ġfun Ġassert Z ( clauses : ĠSequence < Clause >): ĠMutable Theory ĊĊĠĠĠ Ġoverride Ġfun Ġre tract ( clause : ĠClause ): ĠRe tract Result < Mutable Theory > ĊĊĠĠĠ Ġoverride Ġfun Ġre tract ( clauses : ĠIterable < Clause >): ĠRe tract Result < Mutable Theory > ĊĊĠĠĠ Ġoverride Ġfun Ġre tract ( clauses : ĠSequence < Clause >): ĠRe tract Result < Mutable Theory > ĊĊĠĠĠ Ġoverride Ġfun Ġre tract ( head : ĠStruct ): ĠRe tract Result < Mutable Theory > Ġ= ĊĠĠĠĠĠĠĠ Ġre tract ( Rule . of ( head , ĠVar . anonymous ())) ĊĊĠĠĠ Ġoverride Ġfun Ġre tract All ( clause : ĠClause ): ĠRe tract Result < Mutable Theory > ĊĊĠĠĠ Ġoverride Ġfun Ġre tract All ( head : ĠStruct ): ĠRe tract Result < Mutable Theory > Ġ= ĊĠĠĠĠĠĠĠ Ġre tract All ( Rule . of ( head , ĠVar . anonymous ())) ĊĊĠĠĠ Ġoverride Ġfun Ġab ol ish ( indicator : ĠIndicator ): ĠMutable Theory ĊĊĠĠĠ Ġoverride Ġfun Ġreplace Tags ( tags : ĠMap < String , ĠAny >): ĠMutable Theory ĊĊĠĠĠ Ġoverride Ġfun Ġclone (): ĠMutable Theory ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĊĠĠĠĠĠĠĠ Ġ/** ĠCreates Ġan Ġempty Ġ[ Mutable Theory ] Ġ*/ ĊĠĠĠĠĠĠĠ Ġ@ Jvm Static ĊĠĠĠĠĠĠĠ Ġ@ Js Name (" empty ") ĊĠĠĠĠĠĠĠ Ġfun Ġempty (): ĠMutable Theory Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġindexed Of ( emptyList ()) ĊĊĠĠĠĠĠĠĠ Ġ/** ĠCreates Ġa Ġ[ Mutable Theory ], Ġcontaining Ġthe Ġgiven Ġclauses Ġ*/ ĊĠĠĠĠĠĠĠ Ġ@ Jvm Static ĊĠĠĠĠĠĠĠ Ġ@ Js Name (" of ") ĊĠĠĠĠĠĠĠ Ġfun Ġof ( var arg Ġclause : ĠClause ): ĠMutable Theory Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġindexed Of (* clause ) ĊĊĠĠĠĠĠĠĠ Ġ/** ĠCreates Ġa Ġ[ Mutable Theory ], Ġcontaining Ġthe Ġgiven Ġclauses Ġ*/ ĊĠĠĠĠĠĠĠ Ġ@ Jvm Static ĊĠĠĠĠĠĠĠ Ġ@ Js Name (" of Iterable ") ĊĠĠĠĠĠĠĠ Ġfun Ġof ( clauses : ĠIterable < Clause >): ĠMutable Theory Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġindexed Of ( clauses ) ĊĊĠĠĠĠĠĠĠ Ġ/** ĠCreates Ġa Ġ[ Mutable Theory ], Ġcontaining Ġthe Ġgiven Ġclauses Ġ*/ ĊĠĠĠĠĠĠĠ Ġ@ Jvm Static ĊĠĠĠĠĠĠĠ Ġ@ Js Name (" of Sequence ") ĊĠĠĠĠĠĠĠ Ġfun Ġof ( clauses : ĠSequence < Clause >): ĠMutable Theory Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġindexed Of ( clauses ) ĊĊĠĠĠĠĠĠĠ Ġ/** ĠLet Ġdevelopers Ġeasily Ġcreate Ġa Ġ[ Mutable Theory ], Ġwhile Ġavoid ing Ġvariables Ġnames Ġcl ashing Ġby Ġusing Ġa ĊĠĠĠĠĠĠĠĠ Ġ* Ġdifferent Ġ[ Scope ] Ġfor Ġeach Ġ[ Clause ] Ġ*/ ĊĠĠĠĠĠĠĠ Ġ@ Jvm Static ĊĠĠĠĠĠĠĠ Ġ@ Js Name (" of Scopes ") ĊĠĠĠĠĠĠĠ Ġfun Ġof ( var arg Ġclauses : ĠScope . () Ġ-> ĠClause ): ĠMutable Theory Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġindexed Of (* clauses ) ĊĊĠĠĠĠĠĠĠ Ġ/** ĠCreates Ġan Ġempty Ġ[ Mutable Theory ] Ġbacked Ġby Ġan Ġindexed Ġdata Ġstructure Ġ*/ ĊĠĠĠĠĠĠĠ Ġ@ Jvm Static ĊĠĠĠĠĠĠĠ Ġ@ Js Name (" empty Indexed ") ĊĠĠĠĠĠĠĠ Ġfun Ġempty Indexed (): ĠMutable Theory Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġindexed Of ( emptyList ()) ĊĊĠĠĠĠĠĠĠ Ġ/** ĠCreates Ġa Ġ[ Mutable Theory ] Ġbacked Ġby Ġan Ġindexed Ġdata Ġstructure , Ġcontaining Ġthe Ġgiven Ġclauses Ġ*/ ĊĠĠĠĠĠĠĠ Ġ@ Jvm Static ĊĠĠĠĠĠĠĠ Ġ@ Js Name (" indexed Of ") ĊĠĠĠĠĠĠĠ Ġfun Ġindexed Of ( var arg Ġclause : ĠClause ): ĠMutable Theory Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġindexed Of ( clause . as Iterable ()) ĊĊĠĠĠĠĠĠĠ Ġ/** ĠLet Ġdevelopers Ġeasily Ġcreate Ġa Ġ[ Mutable Theory ] Ġbacked Ġby Ġan Ġindexed Ġdata Ġstructure , Ġwhile Ġavoid ing Ġvariables Ġnames ĊĠĠĠĠĠĠĠĠ Ġ* Ġcl ashing Ġby Ġusing Ġa Ġdifferent Ġ[ Scope ] Ġfor Ġeach Ġ[ Clause ] Ġ*/ ĊĠĠĠĠĠĠĠ Ġ@ Jvm Static ĊĠĠĠĠĠĠĠ Ġ@ Js Name (" indexed Of Scopes ") ĊĠĠĠĠĠĠĠ Ġfun Ġindexed Of ( var arg Ġclauses : ĠScope . () Ġ-> ĠClause ): ĠMutable Theory Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġindexed Of ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġclauses . map Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠScope . empty ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġ/** ĠCreates Ġa Ġ[ Mutable Theory ] Ġbacked Ġby Ġan Ġindexed Ġdata Ġstructure , Ġcontaining Ġthe Ġgiven Ġclauses Ġ*/ ĊĠĠĠĠĠĠĠ Ġ@ Jvm Static ĊĠĠĠĠĠĠĠ Ġ@ Js Name (" indexed Of Sequence ") ĊĠĠĠĠĠĠĠ Ġfun Ġindexed Of ( clauses : ĠSequence < Clause >): ĠMutable Theory Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġindexed Of ( clauses . as Iterable ()) ĊĊĠĠĠĠĠĠĠ Ġ/** ĠCreates Ġa Ġ[ Mutable Theory ] Ġbacked Ġby Ġan Ġindexed Ġdata Ġstructure , Ġcontaining Ġthe Ġgiven Ġclauses Ġ*/ ĊĠĠĠĠĠĠĠ Ġ@ Jvm Static ĊĠĠĠĠĠĠĠ Ġ@ Js Name (" indexed Of Iterable ") ĊĠĠĠĠĠĠĠ Ġfun Ġindexed Of ( clauses : ĠIterable < Clause >): ĠMutable Theory Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMutable Indexed Theory ( clauses ) ĊĊĠĠĠĠĠĠĠ Ġ/** ĠCreates Ġa Ġ[ Mutable Theory ] Ġbacked Ġby Ġa Ġlist , Ġcontaining Ġthe Ġgiven Ġclauses Ġ*/ ĊĠĠĠĠĠĠĠ Ġ@ Jvm Static ĊĠĠĠĠĠĠĠ Ġ@ Js Name (" emptyList ed ") ĊĠĠĠĠĠĠĠ Ġfun Ġempty List ed (): ĠMutable Theory Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlisted Of ( empty Sequence ()) ĊĊĠĠĠĠĠĠĠ Ġ/** ĠCreates Ġa Ġ[ Mutable Theory ] Ġbacked Ġby Ġa Ġlist , Ġcontaining Ġthe Ġgiven Ġclauses Ġ*/ ĊĠĠĠĠĠĠĠ Ġ@ Jvm Static ĊĠĠĠĠĠĠĠ Ġ@ Js Name (" listed Of ") ĊĠĠĠĠĠĠĠ Ġfun Ġlisted Of ( var arg Ġclause : ĠClause ): ĠMutable Theory Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlisted Of ( clause . as Iterable ()) ĊĊĠĠĠĠĠĠĠ Ġ/** ĠLet Ġdevelopers Ġeasily Ġcreate Ġa Ġ[ Mutable Theory ] Ġbacked Ġby Ġa Ġlist , Ġwhile Ġavoid ing Ġvariables Ġnames ĊĠĠĠĠĠĠĠĠ Ġ* Ġcl ashing Ġby Ġusing Ġa Ġdifferent Ġ[ Scope ] Ġfor Ġeach Ġ[ Clause ] Ġ*/ ĊĠĠĠĠĠĠĠ Ġ@ Jvm Static ĊĠĠĠĠĠĠĠ Ġ@ Js Name (" listed Of Scopes ") ĊĠĠĠĠĠĠĠ Ġfun Ġlisted Of ( var arg Ġclause : ĠScope . () Ġ-> ĠClause ): ĠMutable Theory Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlisted Of ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġclause . map Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠScope . empty ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġ/** ĠCreates Ġa Ġ[ Mutable Theory ] Ġbacked Ġby Ġa Ġlist , Ġcontaining Ġthe Ġgiven Ġclauses Ġ*/ ĊĠĠĠĠĠĠĠ Ġ@ Jvm Static ĊĠĠĠĠĠĠĠ Ġ@ Js Name (" listed Of Sequence ") ĊĠĠĠĠĠĠĠ Ġfun Ġlisted Of ( clauses : ĠSequence < Clause >): ĠMutable Theory Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlisted Of ( clauses . as Iterable ()) ĊĊĠĠĠĠĠĠĠ Ġ/** ĠCreates Ġa Ġ[ Mutable Theory ] Ġbacked Ġby Ġa Ġlist , Ġcontaining Ġthe Ġgiven Ġclauses Ġ*/ ĊĠĠĠĠĠĠĠ Ġ@ Jvm Static ĊĠĠĠĠĠĠĠ Ġ@ Js Name (" listed Of Iterable ") ĊĠĠĠĠĠĠĠ Ġfun Ġlisted Of ( clauses : ĠIterable < Clause >): ĠMutable Theory Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMutable List ed Theory ( clauses ) ĊĠĠĠ Ġ} Ċ } Ċ