We attempt to replicate the Monoid proof but with our new workflow and with the local provers.
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(lmW=0, piW=0)
val ts = TermState(dist1, dist1.map(_.typ))
import monix.execution.Scheduler.Implicits.global
val lp = LocalProver(ts).noIsles.sharpen(10)
val lemT = lp.lemmas
val lemF = lemT.runToFuture
val tangLpT = lp.proofTangent()
val thmsT = tangLpT.flatMap(_.theoremsByStatement)
val thmsF = thmsT.runToFuture
thmsF.value
val tangLpT0 = tangLpT.map(_.copy(cutoff = math.pow(10, -3)))
val thmsT0 = tangLpT0.flatMap(_.theoremsByStatement)
val thmsF0 = thmsT0.runToFuture
thmsF0.map(_(eqM(l)(r)))
val tangLpT1 = tangLpT.map(_.copy(cutoff = 5* math.pow(10, -3)))
val thmsT1 = tangLpT1.flatMap(_.theoremsByStatement)
val goal = eqM(l)(r)
val goalT = thmsT1.map(_(goal))
val goalF = goalT.runToFuture
val tangLpT2 = tangLpT.map(_.copy(cutoff = math.pow(10, -4)))
val thmsT2 = tangLpT2.flatMap(_.theoremsByStatement)
val goalT2 = thmsT2.map(_(goal))
val goalF2 = goalT2.runToFuture
val lem = eqM(l)(op(l)(r))
val cmlT = lemT.map(_.filter(_._1 == lem)).runToFuture
val tangS = ts.tangent("proof" :: lem)
val lpTangT = lp.distTangentProver(FiniteDistribution.unif("proof" :: lem))
val targGoalT = lpTangT.flatMap(lpt => lpt.theoremsByStatement).map(_(goal))
val targGoalF = targGoalT.runToFuture