InΒ [1]:
import $cp.bin.`provingground-core-jvm-16c05447f5.fat.jar`
import provingground._ , interface._, HoTT._, learning._
repl.pprinter() = {
val p = repl.pprinter()
p.copy(
additionalHandlers = p.additionalHandlers.orElse {
translation.FansiShow.fansiHandler
}
)
}
Out[1]:
import $cp.$
import provingground._ , interface._, HoTT._, learning._
InΒ [2]:
val lp = LocalProver(TermState(FiniteDistribution.empty, FiniteDistribution.unif(Type)))
Out[2]:
lp: LocalProver = LocalProver(
TermState(
FiniteDistribution(Vector()),
FiniteDistribution(Vector(Weighted(π° , 1.0))),
Vector(),
FiniteDistribution(Vector()),
FiniteDistribution(Vector()),
Empty
),
TermGenParams(
0.1,
0.1,
0.1,
0.1,
0.1,
0.05,
0.05,
0.05,
0.0,
0.0,
0.0,
0.0,
0.3,
0.7,
0.5,
0.0,
0.0,
0.0,
OrElse(
OrElse(OrElse(OrElse(<function1>, <function1>), <function1>), <function1>),
<function1>
)
),
1.0E-4,
None,
12 minutes,
1.01,
1.0,
...
InΒ [3]:
val typsT = lp.varDist(TermRandomVars.Typs)
Out[3]:
typsT: monix.eval.Task[FiniteDistribution[Typ[Term]]] = Map(
FlatMap(
Async(<function2>, true, true, true),
monix.eval.Task$$Lambda$2532/391230082@40f1ded4
),
scala.Function1$$Lambda$332/412925308@7cfc1c81,
1
)
InΒ [4]:
import monix.execution.Scheduler.Implicits.global
val typs = typsT.runSyncUnsafe()
Out[4]:
import monix.execution.Scheduler.Implicits.global
typs: FiniteDistribution[Typ[Term]] = FiniteDistribution(
Vector(
Weighted((β(@a : π° ){ @a } β π° )Γπ° , 2.864303616183315E-4),
Weighted((π° β π° )Γπ° , 0.0030964747095065226),
Weighted((π° Γπ° β π° )Γπ° , 3.3416875522138676E-4),
Weighted(((π° β π° ) β π° )Γπ° , 6.683375104427735E-4),
Weighted((π° β π° )Γβ(@a : π° ){ @a }, 1.5482373547532613E-4),
Weighted(β(@a : π° ){ @aΓ@a }, 2.531792092091293E-4),
Weighted((π° β β(@b : π° ){ @b }), 8.854437201954419E-4),
Weighted(π° , 0.8421052631578946),
Weighted(β(@a : π° ){ @aΓπ° }, 8.854437201954417E-4),
Weighted((π° β π° )Γπ° Γπ° , 1.8062769138788048E-4),
Weighted(β(@a : π° ){ @a }, 0.010127168368365172),
Weighted((π° β (π° β π° ))Γπ° , 3.097764907302151E-4),
Weighted(β(@a : π° ){ (@a β @a) }, 4.7897690533021465E-4),
Weighted(β(@a : π° ){ (π° β @a) }, 7.823289453726841E-4),
Weighted(β(@a : π° ){ @a }Γπ° , 0.0016256492224909244),
Weighted(β(@a : π° ){ π° Γ@a }, 4.135260417082446E-4),
Weighted(β(@a : π° ){ @a }Γπ° , 9.426551453260014E-4),
Weighted(π° Γβ(@b : π° ){ @b }, 5.907514881546351E-4),
Weighted(π° Γπ° Γ(π° β π° ), 2.2980150308942325E-4),
Weighted(π° Γπ° , 0.023630059526185403),
Weighted((π° Γπ° β β(@a : π° ){ @a }), 1.5482373547532618E-4),
Weighted(β(@a : π° ){ (@a β @a) }, 6.79803857197287E-4),
Weighted(β(@a : π° ){ ((π° β π° ) β @a) }, 1.2954040167703856E-4),
Weighted(β(@a : π° ){ (π° β @a) }, 0.0011103463000889024),
Weighted((π° β β(@b : π° ){ @b }), 0.0015862090001270033),
Weighted(((π° β π° ) β β(@a : π° ){ @a }), 2.718085193921044E-4),
Weighted((β(@a : π° ){ @a }Γπ° β π° ), 2.8643036161833153E-4),
Weighted((β(@a : π° ){ @a } β π° ), 0.0016256492224909246),
Weighted(((π° β π° )Γπ° β π° ), 6.683375104427735E-4),
Weighted((π° β π° ), 0.055272207947044544),
Weighted((π° Γπ° β π° ), 0.003096474709506523),
Weighted((β(@a : π° ){ (π° β @a) } β π° ), 2.3307580537872962E-4),
Weighted(((π° β β(@b : π° ){ @b }) β π° ), 3.329654362553281E-4),
Weighted(((π° β π° ) β π° ), 0.005436170387842089),
Weighted(((β(@a : π° ){ @a } β π° ) β π° ), 2.807017543859649E-4),
Weighted(((π° Γπ° β π° ) β π° ), 6.549707602339181E-4),
Weighted((((π° β π° ) β π° ) β π° ), 0.0013099415204678362),
...
InΒ [5]:
import scala.util._
def skolemCheck(typ: Typ[Term]) = {
val sk = skolemize(typ)
val x = sk.Var
(typ, sk, Try(fromSkolemized(typ)(x)))
}
Out[5]:
import scala.util._
defined function skolemCheck
InΒ [6]:
val checklist = typs.supp.map(skolemCheck)
Out[6]:
checklist: Vector[(Typ[Term], Typ[Term], Try[Term])] = Vector(
(
(β(@a : π° ){ @a } β π° )Γπ° ,
(β(@a : π° ){ @a } β π° )Γπ° ,
Success((($hkd : β(@a : π° ){ @a }) β¦ $hjy_1($hkd) , $hjy_2))
),
(
(π° β π° )Γπ° ,
(π° β π° )Γπ° ,
Success((($hln : π° ) β¦ $hlk_1($hln) , $hlk_2))
),
(
(π° Γπ° β π° )Γπ° ,
(π° Γπ° β π° )Γπ° ,
Success(
(((`$hlv_1 , $hlv_2) : π° Γπ° ) β¦ $hls_1((`$hlv_1 , $hlv_2)) , $hls_2)
)
),
(
((π° β π° ) β π° )Γπ° ,
((π° β π° ) β π° )Γπ° ,
Success((($hmf : (π° β π° )) β¦ $hma_1($hmf) , $hma_2))
),
(
(π° β π° )Γβ(@a : π° ){ @a },
(π° β π° )Γβ(@a : π° ){ @a },
Success((($hnq : π° ) β¦ $hnm_1($hnq) , (@a : π° ) β¦ $hnm_2(@a)))
),
(
β(@a : π° ){ @aΓ@a },
β(@a : π° ){ @aΓ@a },
Success(($hnz_1 , ($hnz_2_1 , $hnz_2_2)))
),
(
(π° β β(@b : π° ){ @b }),
β($hob : (π° β π° )){ β($hoa : π° ){ $hob($hoa) } },
Success(($jtr : π° ) β¦ ($hot_1($jtr) , $hot_2($jtr)))
),
(π° , π° , Success($kql)),
...
InΒ [7]:
checklist.filter(_._3.isFailure)
Out[7]:
res6: Vector[(Typ[Term], Typ[Term], Try[Term])] = Vector()
InΒ [8]:
val lp1 = LocalProver(TermState(FiniteDistribution.empty, FiniteDistribution.unif(Type))).sharpen(10).asInstanceOf[LocalProver]
Out[8]:
lp1: LocalProver = LocalProver(
TermState(
FiniteDistribution(Vector()),
FiniteDistribution(Vector(Weighted(π° , 1.0))),
Vector(),
FiniteDistribution(Vector()),
FiniteDistribution(Vector()),
Empty
),
TermGenParams(
0.1,
0.1,
0.1,
0.1,
0.1,
0.05,
0.05,
0.05,
0.0,
0.0,
0.0,
0.0,
0.3,
0.7,
0.5,
0.0,
0.0,
0.0,
OrElse(
OrElse(OrElse(OrElse(<function1>, <function1>), <function1>), <function1>),
<function1>
)
),
1.0E-5,
None,
12 minutes,
1.01,
1.0,
...
InΒ [9]:
import TermRandomVars.Typs
val typs1T = lp1.varDist(Typs).memoize
Out[9]:
import TermRandomVars.Typs
typs1T: monix.eval.Task[FiniteDistribution[Typ[Term]]] = Async(
<function2>,
false,
true,
true
)
InΒ [10]:
val typs1 = typs1T.runSyncUnsafe()
Out[10]:
typs1: FiniteDistribution[Typ[Term]] = FiniteDistribution(
Vector(
Weighted(((π° Γπ° β π° ) β π° )Γπ° , 3.5165091915152586E-5),
Weighted((((π° β π° ) β π° ) β π° )Γπ° , 7.033018383030517E-5),
Weighted((π° Γπ° β π° )Γπ° , 1.8562156889144032E-4),
Weighted((β(@a : π° ){ @a } β π° )Γπ° , 9.919705032781848E-5),
Weighted(((π° β π° )Γπ° β π° )Γπ° , 3.8576630683040526E-5),
Weighted((π° β π° )Γπ° , 0.0019893019971860145),
Weighted((β(@a : π° ){ @a } β π° )Γπ° , 1.7106956720958893E-4),
Weighted(((π° β (π° β π° )) β π° )Γπ° , 3.2598256418271675E-5),
Weighted(((π° β π° ) β π° )Γπ° , 2.9180309971784887E-4),
Weighted(((β(@a : π° ){ @a } β π° ) β π° )Γπ° , 3.014150735584507E-5),
Weighted(β(@a : π° ){ @aΓ@a }Γπ° , 2.6642437462312702E-5),
Weighted((π° β (π° β β(@c : π° ){ @c })), 5.7835540448263214E-5),
Weighted(β(@a : π° ){ (@a β β(@b : π° ){ @b }) }, 2.413188179929202E-5),
Weighted(β(@a : π° ){ @a }Γπ° Γπ° , 4.9732549929650365E-5),
Weighted(β(@a : (π° β π° )){ β(@a : π° ){ @a(@a) } }, 4.241582083552271E-5),
Weighted((π° β π° )Γβ(@a : π° ){ @a }, 7.634847750394084E-5),
Weighted(β(@a : π° ){ @aΓ@a }, 1.493314624571734E-4),
Weighted(β(@a : π° ){ @aΓπ° Γπ° }, 2.2199020648431023E-5),
Weighted(β(@a : π° ){ @aΓ@aΓπ° }, 1.8952021767169072E-5),
Weighted((β(@a : π° ){ @a } β β(@a : π° ){ @a }), 3.377252570160576E-5),
Weighted((β(@a : π° ){ @a } β β(@a : π° ){ @a }), 1.912316937487314E-4),
Weighted((π° β β(@b : π° ){ @b }), 6.164148653051663E-4),
Weighted((π° Γπ° β β(@a : π° ){ @a }), 4.973254992965036E-5),
Weighted(((π° β π° ) β β(@a : π° ){ @a }), 8.929196560765703E-5),
Weighted(β(@a : π° ){ @a }Γπ° Γπ° , 2.547169635705217E-5),
Weighted(β(@a : π° ){ β(@a : (π° β π° )){ @a(@a) } }, 2.788673127756236E-5),
Weighted(
β(@a : (π° β π° )){ β(@a : π° ){ @a(@a) } },
4.9606647559809485E-5
),
Weighted(β(@a : π° ){ (@a β π° )Γπ° }, 4.4398041296862046E-5),
Weighted((π° Γ(π° β π° ) β π° Γ(π° β π° )), 2.5196234752183232E-5),
Weighted(β(@a : π° ){ π° Γ(@a β π° ) }, 3.523838313327868E-5),
Weighted((π° β π° Γ(π° β π° )), 5.755602578435516E-5),
Weighted(π° , 0.8030625601428774),
...
InΒ [11]:
val checklist1 = typs1.supp.map(skolemCheck)
Out[11]:
checklist1: Vector[(Typ[Term], Typ[Term], Try[Term])] = Vector(
(
((π° Γπ° β π° ) β π° )Γπ° ,
((π° Γπ° β π° ) β π° )Γπ° ,
Success((($hgjk : (π° Γπ° β π° )) β¦ $hgjf_1($hgjk) , $hgjf_2))
),
(
(((π° β π° ) β π° ) β π° )Γπ° ,
(((π° β π° ) β π° ) β π° )Γπ° ,
Success((($hglc : ((π° β π° ) β π° )) β¦ $hgkv_1($hglc) , $hgkv_2))
),
(
(π° Γπ° β π° )Γπ° ,
(π° Γπ° β π° )Γπ° ,
Success(
(((`$hgnw_1 , $hgnw_2) : π° Γπ° ) β¦ $hgnt_1((`$hgnw_1 , $hgnw_2)) , $hgnt_2)
)
),
(
(β(@a : π° ){ @a } β π° )Γπ° ,
(β(@a : π° ){ @a } β π° )Γπ° ,
Success(
(((`$hgoe_1 , `$hgoe_2) : β(@a : π° ){ @a }) β¦ $hgob_1((`$hgoe_1 , `$hgoe_2)) , $hgob_2)
)
),
(
((π° β π° )Γπ° β π° )Γπ° ,
((π° β π° )Γπ° β π° )Γπ° ,
Success(
(((`$hgoo_1 , $hgoo_2) : (π° β π° )Γπ° ) β¦ $hgol_1((`$hgoo_1 , $hgoo_2)) , $hgol_2)
)
),
(
(π° β π° )Γπ° ,
(π° β π° )Γπ° ,
Success((($hgqs : π° ) β¦ $hgqp_1($hgqs) , $hgqp_2))
...
InΒ [12]:
checklist1.filter(_._3.isFailure)
Out[12]:
res11: Vector[(Typ[Term], Typ[Term], Try[Term])] = Vector()
InΒ [13]:
typs1.entropyVec.reverse
Out[13]:
res12: Vector[Weighted[Typ[Term]]] = Vector(
Weighted(β(@a : π° ){ (@aΓ@a β @a) }, 16.328049464425735),
Weighted((π° β ((π° β π° )Γπ° β π° )), 16.274981046797063),
Weighted(β(@a : π° ){ π° Γ@aΓ@a }, 16.201861886580808),
Weighted(β(@a : π° ){ (π° Γ@a β @a) }, 16.201668331065452),
Weighted(β(@a : π° ){ (π° β @a)Γ@a }, 16.196110037830245),
Weighted((π° β ((β(@b : π° ){ @b } β π° ) β π° )), 16.14168993679603),
Weighted(β(@a : π° ){ (((@a β π° ) β π° ) β π° ) }, 16.14168993679603),
Weighted(β(@a : π° ){ π° Γ(@a β @a) }, 16.014885166154972),
Weighted(β(@a : π° ){ (π° β (@a β @a)) }, 16.014691610639616),
Weighted(β(@a : π° ){ (@a β @a)Γ@a }, 15.989883976537127),
Weighted(β(@a : π° ){ ((@a β @a) β @a) }, 15.98969042102177),
Weighted((π° β β(@b : π° ){ @bΓ@b }), 15.985738820495456),
Weighted(π° Γβ(@b : π° ){ @bΓ@b }, 15.985545264980098),
Weighted(β(@a : π° ){ π° Γπ° Γ@a }, 15.973717616493797),
Weighted(β(@a : π° ){ π° Γ@aΓπ° }, 15.973717616493797),
Weighted(β(@a : π° ){ @aΓβ(@b : π° ){ @b } }, 15.947615527221352),
Weighted(β(@a : π° ){ (@a β β(@b : π° ){ @b }) }, 15.947421971705996),
Weighted((π° β ((π° β π° ) β π° )Γπ° ), 15.936815558908455),
Weighted(π° Γ(((π° β π° ) β π° ) β π° ), 15.9366220033931),
Weighted(β(@a : π° ){ (@a β π° Γ@a) }, 15.853273226256977),
Weighted(π° Γβ(@b : π° ){ (@b β @b) }, 15.853142962167958),
Weighted((π° β (π° Γπ° β π° Γπ° )), 15.827391406557368),
Weighted(β(@a : π° ){ (π° β @aΓ@a) }, 15.814649754578422),
Weighted(β(@a : π° ){ @aΓβ(@b : π° ){ @b } }, 15.808729896007383),
Weighted((π° β β(@b : π° ){ π° Γ@b }), 15.792492744818526),
Weighted(β(@a : π° ){ π° Γ@aΓπ° }, 15.792492744818526),
Weighted(β(@a : π° ){ (π° β @aΓπ° ) }, 15.792299189303169),
Weighted(π° Γβ(@b : π° ){ π° Γ@b }, 15.792299189303169),
Weighted(((π° β (π° β π° )Γπ° ) β π° ), 15.781389148384108),
Weighted(β(@a : π° ){ @aΓπ° Γ@a }, 15.687288713751052),
Weighted(β(@a : π° ){ β(@b : π° ){ @b }Γ@a }, 15.687288713751052),
Weighted(β(@a : π° ){ @aΓ@aΓπ° }, 15.687288713751052),
Weighted(β(@a : π° ){ (@aΓ@a β π° ) }, 15.687095158235694),
Weighted(β(@a : π° ){ (@aΓπ° β @a) }, 15.687095158235694),
Weighted(β(@a : π° ){ (β(@b : π° ){ @b } β @a) }, 15.687095158235694),
Weighted(
(β(@a : π° ){ (π° β @a) } β β(@a : π° ){ (π° β @a) }),
15.686860725001898
...
InΒ [14]:
typs1.support.size
Out[14]:
res13: Int = 366
Content source: siddhartha-gadgil/ProvingGround
Similar notebooks: