package Ġarrow . meta . plugins . analysis . ph ases . analysis . solver . check . model Ċ Ċ import Ġarrow . meta . plugins . analysis . ph ases . analysis . solver . ast . context . elements . Element Ċ import Ġorg . sos y _ lab . java _ smt . api . Boolean Formula Ċ Ċ data Ġclass ĠCurrent Var Info ( private Ġval Ġvar Info : ĠList < Var Info >) Ġ{ ĊĊĠ Ġfun Ġget ( name : ĠString ): ĠVar Info ? Ġ= Ġvar Info . first OrNull Ġ{ Ġit . name Ġ== Ġname Ġ} ĊĊĠ Ġfun Ġadd ( ĊĠĠĠ Ġname : ĠString , ĊĠĠĠ Ġs mt Name : ĠString , ĊĠĠĠ Ġorigin : ĠElement , ĊĠĠĠ Ġinvariant : ĠBoolean Formula ? Ġ= Ġnull ĊĠ Ġ): ĠCurrent Var Info Ġ= Ġthis . add ( listOf ( Var Info ( name , Ġs mt Name , Ġorigin , Ġinvariant ))) ĊĊĠ Ġfun Ġadd ( vars : ĠList < Var Info >): ĠCurrent Var Info Ġ= ĠCurrent Var Info ( vars Ġ+ Ġvar Info ) ĊĊĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠ Ġfun Ġnew (): ĠCurrent Var Info Ġ= ĠCurrent Var Info ( emptyList ()) ĊĠ Ġ} Ċ } Ċ