We attempt to replicate the Monoid proof but with our new workflow and with the local provers, using only unified applications.
import $cp.bin.`provingground-core-jvm-3d48753.fat.jar`
import provingground._ , interface._, HoTT._, learning._
repl.pprinter() = {
val p = repl.pprinter()
p.copy(
additionalHandlers = p.additionalHandlers.orElse {
translation.FansiShow.fansiHandler
}
)
}
import provingground._ , interface._, HoTT._
import learning._
import library._, MonoidSimple._
val tg = TermGenParams.zero.copy(unAppW = 0.2)
val ts = TermState(dist1, dist1.map(_.typ))
val lp = LocalProver(ts, tg)
import monix.execution.Scheduler.Implicits.global
val lemT = lp.lemmas
val lemF = lemT.runToFuture
val lem = eqM(l)(op(l)(r))
val tangS = ts.tangent("proof" :: lem)
val goal = eqM(l)(r)
val lpTangT = lp.distTangentProver(FiniteDistribution.unif("proof" :: lem))
val targGoalT = lpTangT.flatMap(lpt => lpt.theoremsByStatement).map(_(goal))
val targGoalF = targGoalT.runToFuture
val tg1 = TermGenParams.zero.copy(appW = 0.1, unAppW = 0.1)
val lp1 = LocalProver(ts, tg1)
val lemT1 = lp1.lemmas
val lemF1 = lemT1.runToFuture
val lpTangT1 = lp1.distTangentProver(FiniteDistribution.unif("proof" :: lem))
val targGoalT1 = lpTangT1.flatMap(lpt => lpt.theoremsByStatement).map(_(goal))
val targGoalF1 = targGoalT1.runToFuture