Lean Kernel Arena / rpylean

Checker "rpylean"

Version: v2026.5.5 · 📄 Declaration · 🔗 Source

rpylean - A Lean type checker written in (R)Python.

Completeness (rightfully accepted tests)

89/96

Soundness (rightfully rejected tests)

46/46

Declined tests

0

Test Expected Result ⏱️ 🧠
bogus1 4 ms 7.4 MB
cedar 👍 1.6 m 14.1 GB
constlevels 4 ms 7.6 MB
cslib 👍 1.8 m 14.1 GB
init 👍 2.7 m 14.1 GB
init-prelude 👍 👍 294 ms (-27%) 96.7 MB
level-imax-leq 2 ms 7.5 MB
level-imax-normalization 2 ms 7.4 MB
mathlib 👍 2.6 m 14.1 GB
mlir 👍 9.8 s 1.2 GB
nat-rec-rules 2 ms 7.4 MB
perf/app-lam 👍 👍 182 ms (-97%) 117.2 MB (-92%)
perf/grind-ring-5 👍 4.7 s 364.7 MB
perf/shift-cascade 👍 👍 8 ms (-85%) 18.5 MB
proj-of-prop 2 ms 7.2 MB
std 👍 2.6 m 14.1 GB
tutorial/001_basicDef 👍 👍 3 ms 7.0 MB
tutorial/002_badDef 2 ms 7.1 MB
tutorial/003_arrowType 👍 👍 2 ms 7.1 MB
tutorial/004_dependentType 👍 👍 2 ms 7.1 MB
tutorial/005_constType 👍 👍 2 ms 7.2 MB
tutorial/006_betaReduction 👍 👍 2 ms 7.2 MB
tutorial/007_betaReduction2 👍 👍 2 ms 7.2 MB
tutorial/008_forallSortWhnf 👍 👍 2 ms 7.2 MB
tutorial/009_forallSortBad 2 ms 7.2 MB
tutorial/010_nonTypeType 2 ms 7.2 MB
tutorial/011_nonPropThm 2 ms 7.1 MB
tutorial/012_levelComp1 👍 👍 2 ms 7.0 MB
tutorial/013_levelComp2 👍 👍 2 ms 7.0 MB
tutorial/014_levelComp3 👍 👍 2 ms 7.1 MB
tutorial/015_levelParams 👍 👍 2 ms 7.2 MB
tutorial/016_tut06_bad01 2 ms 6.9 MB
tutorial/017_levelComp4 👍 👍 2 ms 7.0 MB
tutorial/018_levelComp5 👍 👍 2 ms 7.0 MB
tutorial/019_imax1 👍 👍 2 ms 7.1 MB
tutorial/020_imax2 👍 👍 2 ms 7.2 MB
tutorial/021_inferVar 👍 👍 2 ms 7.1 MB
tutorial/022_defEqLambda 👍 👍 2 ms 7.2 MB
tutorial/023_peano1 👍 👍 2 ms 7.2 MB
tutorial/024_peano2 👍 👍 2 ms 7.4 MB
tutorial/025_peano3 👍 👍 2 ms 7.4 MB
tutorial/026_letType 👍 👍 2 ms 7.1 MB
tutorial/027_letTypeDep 👍 👍 2 ms 7.2 MB
tutorial/028_letRed 👍 👍 2 ms 7.1 MB
tutorial/029_empty 👍 👍 2 ms 7.1 MB
tutorial/030_boolType 👍 👍 2 ms 7.2 MB
tutorial/031_twoBool 👍 👍 2 ms 7.2 MB
tutorial/032_andType 👍 👍 2 ms 7.2 MB
tutorial/033_prodType 👍 👍 2 ms 7.2 MB
tutorial/034_pprodType 👍 👍 2 ms 7.2 MB
tutorial/035_pUnitType 👍 👍 2 ms 7.2 MB
tutorial/036_eqType 👍 👍 2 ms 7.2 MB
tutorial/037_natDef 👍 👍 2 ms 7.2 MB
tutorial/038_rbTreeDef 👍 👍 2 ms 7.4 MB
tutorial/039_inductBadNonSort 2 ms 7.2 MB
tutorial/040_inductBadNonSort2 2 ms 7.1 MB
tutorial/041_inductLevelParam 2 ms 6.9 MB
tutorial/042_inductTooFewParams 2 ms 7.0 MB
tutorial/043_inductWrongCtorParams 2 ms 7.1 MB
tutorial/044_inductWrongCtorResParams 2 ms 7.2 MB
tutorial/045_inductWrongCtorResLevel 2 ms 7.2 MB
tutorial/046_inductInIndex 2 ms 7.1 MB
tutorial/047_indNeg 2 ms 7.2 MB
tutorial/048_reduceCtorParam.mk 👍 👍 2 ms 7.2 MB
tutorial/049_reduceCtorType.mk 2 ms 7.2 MB
tutorial/050_indNegReducible 2 ms 7.2 MB
tutorial/051_predWithTypeField 👍 👍 2 ms 7.2 MB
tutorial/052_typeWithTypeField 👍 👍 2 ms 7.2 MB
tutorial/053_typeWithTypeFieldPoly 👍 👍 2 ms 7.2 MB
tutorial/054_typeWithTooHighTypeField.mk 2 ms 7.1 MB
tutorial/055_emptyRec 👍 👍 2 ms 7.2 MB
tutorial/056_boolRec 👍 👍 2 ms 7.2 MB
tutorial/057_twoBoolRec 👍 👍 2 ms 7.2 MB
tutorial/058_andRec 👍 👍 2 ms 7.2 MB
tutorial/059_prodRec 👍 👍 2 ms 7.2 MB
tutorial/060_pprodRec 👍 👍 2 ms 7.2 MB
tutorial/061_punitRec 👍 👍 2 ms 7.2 MB
tutorial/062_eqRec 👍 👍 2 ms 7.2 MB
tutorial/063_nRec 👍 👍 2 ms 7.2 MB
tutorial/064_rbTreeRef 👍 👍 2 ms 7.5 MB
tutorial/065_boolPropRec 👍 👍 2 ms 7.2 MB
tutorial/066_existsRec 👍 👍 2 ms 7.2 MB
tutorial/067_sortElimPropRec 👍 👍 2 ms 7.2 MB
tutorial/068_sortElimProp2Rec 👍 👍 2 ms 7.4 MB
tutorial/069_boolRecEqns 👍 👍 2 ms 7.5 MB
tutorial/070_prodRecEqns 👍 👍 2 ms 7.6 MB
tutorial/071_nRecReduction 👍 👍 2 ms 7.5 MB
tutorial/072_listRecReduction 👍 👍 3 ms 8.0 MB
tutorial/073_RBTree.id_spec 👍 👍 6 ms 14.2 MB
tutorial/074_And.right 👍 👍 2 ms 7.2 MB
tutorial/075_Prod.snd 👍 👍 2 ms 7.2 MB
tutorial/076_PProd.snd 👍 👍 2 ms 7.2 MB
tutorial/077_PSigma.snd 👍 👍 2 ms 7.4 MB
tutorial/078_projOutOfRange 2 ms 7.2 MB
tutorial/079_projNotStruct 2 ms 7.2 MB
tutorial/080_projProp1 👍 👍 2 ms 7.2 MB
tutorial/081_projProp2 2 ms 7.2 MB
tutorial/082_projProp3 👍 👍 2 ms 7.2 MB
tutorial/083_projProp4 2 ms 7.2 MB
tutorial/084_projProp5 2 ms 7.2 MB
tutorial/085_projProp6 2 ms 7.2 MB
tutorial/086_projDataIndexRec 👍 👍 2 ms 7.2 MB
tutorial/087_projIndexData 2 ms 7.2 MB
tutorial/088_projIndexData2 2 ms 7.2 MB
tutorial/089_projRed 👍 👍 2 ms 7.4 MB
tutorial/090_ruleK 👍 👍 2 ms 7.2 MB
tutorial/091_ruleKbad 2 ms 7.4 MB
tutorial/092_ruleKAcc 2 ms 7.8 MB
tutorial/093_aNatLit 👍 👍 2 ms 7.2 MB
tutorial/094_natLitEq 👍 👍 2 ms 7.2 MB
tutorial/095_proofIrrelevance 👍 👍 2 ms 7.2 MB
tutorial/096_unitEta1 👍 👍 2 ms 7.2 MB
tutorial/097_unitEta2 👍 👍 2 ms 7.2 MB
tutorial/098_unitEta3 👍 👍 2 ms 7.2 MB
tutorial/099_structEta 👍 👍 2 ms 7.5 MB
tutorial/100_funEta 👍 👍 2 ms 7.2 MB
tutorial/101_funEtaDep 👍 👍 2 ms 7.4 MB
tutorial/102_funEtaBad 2 ms 7.4 MB
tutorial/103_etaRuleK 2 ms 7.4 MB
tutorial/104_etaCtor 2 ms 7.4 MB
tutorial/105_reflOccLeft 2 ms 7.2 MB
tutorial/106_reflOccInIndex 2 ms 7.2 MB
tutorial/107_reduceCtorParamRefl.mk 👍 👍 2 ms 7.2 MB
tutorial/108_reduceCtorParamRefl2.mk 👍 👍 2 ms 7.2 MB
tutorial/109_rTreeRec 👍 👍 2 ms 7.2 MB
tutorial/110_rtreeRecReduction 👍 👍 2 ms 7.4 MB
tutorial/111_accRecType 👍 👍 2 ms 7.4 MB
tutorial/112_accRecReduction 👍 👍 2 ms 7.9 MB
tutorial/113_accRecNoEta 2 ms 7.8 MB
tutorial/114_quotMkType 👍 👍 2 ms 7.2 MB
tutorial/115_quotIndType 👍 👍 2 ms 7.2 MB
tutorial/116_quotLiftType 👍 👍 2 ms 7.2 MB
tutorial/117_quotSoundType 👍 👍 2 ms 7.4 MB
tutorial/118_quotLiftReduction 👍 👍 2 ms 7.5 MB
tutorial/119_quotIndReduction 👍 👍 2 ms 7.5 MB
tutorial/120_dup_defs 2 ms 7.1 MB
tutorial/121_dup_ind_def 2 ms 7.0 MB
tutorial/122_dup_ctor_def 2 ms 7.0 MB
tutorial/123_dup_rec_def 2 ms 7.0 MB
tutorial/124_dup_rec_def2 2 ms 7.0 MB
tutorial/125_dup_ctor_rec 2 ms 6.9 MB
tutorial/126_DupConCon 2 ms 6.9 MB

Detailed results

Test "bogus1"

Expected: ✋ reject · Size: 11.4 KB · Lines: 198 · lean4export: 3.1.0 · Lean: 4.29.0 · 📄 Declaration · 🔗 Source

A clearly bogus proof. Also serves as an example for how to write simple cases.

Test result: ✋ rejected · exit code 1 · wall time: 14 ms · instructions: 21.2 M · max rss memory: 7.4 MB

stderr:
theorem thm : Eq (OfNat.ofNat 0) (OfNat.ofNat 1) := True.intro
                                                    ^^^^^^^^^^
                                                    has type
                                                      True
                                                    but is expected to have type
                                                      Eq (OfNat.ofNat 0) (OfNat.ofNat 1)
checked in 0.002123s

Test "cedar"

Expected: 👍 accept · Size: 728.6 MB · Lines: 13.4 M · lean4export: 3.1.0 · Lean: 4.26.0 · 📄 Declaration · 🔗 Source

Lean formalization of, and proofs about, Cedar.

Auto-generated documentation is available at https://cedar-policy.github.io/cedar-spec/docs/.

This test case exports the whole Cedar module and as such contains even unused parts Init and Batteries.

Test result: ✋ rejected · exit code 1 · wall time: 1.3 m · instructions: 590.9 G · max rss memory: 14.1 GB

Test "constlevels"

Expected: ✋ reject · Size: 15.3 KB · Lines: 283 · lean4export: 3.1.0 · Lean: 4.29.0-rc2 · 📄 Declaration

Regression test for undefined behavior in lazy_delta_reduction_step in the official kernel

In the function lazy_delta_reduction_step, the official kernel expects unfold_definition to always succeed. However, if the constant has an incorrect number of level parameters, it actually fails, which leads to memory corruption in lazy_delta_reduction_step.

This test is to check that the official kernel and also other kernels that closely follow the logic of the official kernel correctly handle this unfolding failure.

The issue in the official kernel was originally reported as https://github.com/leanprover/lean4/issues/10577.

Test result: ✋ rejected · exit code 1 · wall time: 22 ms · instructions: 22.1 M · max rss memory: 7.6 MB

stderr:
theorem _test : let x : Nat := Nat
                        ^^^
                        has type
                          Type
                        but is expected to have type
                          Nat
checked in 0.002130s

Test "cslib"

Expected: 👍 accept · Size: 1.2 GB · Lines: 22.8 M · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source

The Lean Computer Science Library (CSLib).

Test result: ✋ rejected · exit code 1 · wall time: 1.6 m · instructions: 654.6 G · max rss memory: 14.1 GB

stderr:
theorem Std.DTreeMap.Internal.Impl.balanced_glue.{u, v} : ∀ {α : Type u}, ∀ {β : α → Type v}, ∀ {l : Std.DTreeMap.Internal.Impl.{u, v} α β}, ∀ {r : Std.DTreeMap.Internal.Impl.{u, v} α β}, ∀ {hl : Std.DTreeMap.Internal.Impl.Balanced l}, ∀ {hr : Std.DTreeMap.Internal.Impl.Balanced r}, ∀ {hlr : Std.DTreeMap.Internal.Impl.BalancedAtRoot (Std.DTreeMap.Internal.Impl.size l) (Std.DTreeMap.Internal.Impl.size r)}, Std.DTreeMap.Internal.Impl.Balanced (Std.DTreeMap.Internal.Impl.glue l r hl hr hlr) := fun {α β l r hl hr hlr} ↦ Eq.mpr (id (congrArg (fun x ↦ Std.DTreeMap.Internal.Impl.Balanced (Std.DTreeMap.Internal.Impl.minView.match_3 r (fun l hl hlr ↦ Std.DTreeMap.Internal.Impl.{u, v} α β) l hl hlr (fun hl hlr ↦ r) x)) (funext fun sz ↦ funext fun k ↦ funext fun v ↦ funext fun l' ↦ funext fun r' ↦ funext fun hl ↦ funext fun hlr ↦ congrArg (Std.DTreeMap.Internal.Impl.glue.match_1 sz k v l' r' (fun r hr hlr ↦ Std.DTreeMap.Internal.Impl.{u, v} α β) r hr hlr fun hr hlr ↦ l) (funext fun sz' ↦ funext fun k' ↦ funext fun v' ↦ funext fun l'' ↦ funext fun r'' ↦ funext fun hr ↦ funext fun hlr ↦ ite_congr (Eq.refl (LT.lt sz sz')) (fun a ↦ Eq.refl (Std.DTreeMap.Internal.Impl.balanceLErase (Std.DTreeMap.Internal.Impl.View.k (Std.DTreeMap.Internal.Impl.minView k' v' l'' r'' (Std.DTreeMap.Internal.Impl.glue._proof_4 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_6 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_8 sz k v l' r' hl sz' k' v' l'' r'' hr))) (Std.DTreeMap.Internal.Impl.View.v (Std.DTreeMap.Internal.Impl.minView k' v' l'' r'' (Std.DTreeMap.Internal.Impl.glue._proof_4 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_6 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_8 sz k v l' r' hl sz' k' v' l'' r'' hr))) (Std.DTreeMap.Internal.Impl.inner sz k v l' r') (Std.DTreeMap.Internal.Impl.Tree.impl (Std.DTreeMap.Internal.Impl.minView k' v' l'' r'' (Std.DTreeMap.Internal.Impl.glue._proof_4 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_6 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_8 sz k v l' r' hl sz' k' v' l'' r'' hr)).tree) hl (Std.DTreeMap.Internal.Impl.glue._proof_10 sz k v l' r' hl sz' k' v' l'' r'' hr (Std.DTreeMap.Internal.Impl.Tree.impl (Std.DTreeMap.Internal.Impl.minView k' v' l'' r'' (Std.DTreeMap.Internal.Impl.glue._proof_4 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_6 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_8 sz k v l' r' hl sz' k' v' l'' r'' hr)).tree) (Std.DTreeMap.Internal.Impl.Tree.balanced_impl (Std.DTreeMap.Internal.Impl.minView k' v' l'' r'' (Std.DTreeMap.Internal.Impl.glue._proof_4 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_6 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_8 sz k v l' r' hl sz' k' v' l'' r'' hr)).tree)) (Std.DTreeMap.Internal.Impl.glue._proof_12 sz k v l' r' sz' k' v' l'' r'' hr hlr (Std.DTreeMap.Internal.Impl.Tree.impl (Std.DTreeMap.Internal.Impl.minView k' v' l'' r'' (Std.DTreeMap.Internal.Impl.glue._proof_4 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_6 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_8 sz k v l' r' hl sz' k' v' l'' r'' hr)).tree) (Std.DTreeMap.Internal.Impl.Tree.size_impl (Std.DTreeMap.Internal.Impl.minView k' v' l'' r'' (Std.DTreeMap.Internal.Impl.glue._proof_4 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_6 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_8 sz k v l' r' hl sz' k' v' l'' r'' hr)).tree)))) fun a ↦ Eq.refl (Std.DTreeMap.Internal.Impl.balanceRErase (Std.DTreeMap.Internal.Impl.View.k (Std.DTreeMap.Internal.Impl.maxView k v l' r' (Std.DTreeMap.Internal.Impl.glue._proof_14 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_16 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_18 sz k v l' r' hl sz' k' v' l'' r'' hr))) (Std.DTreeMap.Internal.Impl.View.v (Std.DTreeMap.Internal.Impl.maxView k v l' r' (Std.DTreeMap.Internal.Impl.glue._proof_14 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_16 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_18 sz k v l' r' hl sz' k' v' l'' r'' hr))) (Std.DTreeMap.Internal.Impl.Tree.impl (Std.DTreeMap.Internal.Impl.maxView k v l' r' (Std.DTreeMap.Internal.Impl.glue._proof_14 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_16 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_18 sz k v l' r' hl sz' k' v' l'' r'' hr)).tree) (Std.DTreeMap.Internal.Impl.inner sz' k' v' l'' r'') (Std.DTreeMap.Internal.Impl.glue._proof_10 sz k v l' r' hl sz' k' v' l'' r'' hr (Std.DTreeMap.Internal.Impl.Tree.impl (Std.DTreeMap.Internal.Impl.maxView k v l' r' (Std.DTreeMap.Internal.Impl.glue._proof_14 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_16 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_18 sz k v l' r' hl sz' k' v' l'' r'' hr)).tree) (Std.DTreeMap.Internal.Impl.Tree.balanced_impl (Std.DTreeMap.Internal.Impl.maxView k v l' r' (Std.DTreeMap.Internal.Impl.glue._proof_14 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_16 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_18 sz k v l' r' hl sz' k' v' l'' r'' hr)).tree)) hr (Std.DTreeMap.Internal.Impl.glue._proof_20 sz k v l' r' hl sz' k' v' l'' r'' hlr (Std.DTreeMap.Internal.Impl.Tree.impl (Std.DTreeMap.Internal.Impl.maxView k v l' r' (Std.DTreeMap.Internal.Impl.glue._proof_14 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_16 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_18 sz k v l' r' hl sz' k' v' l'' r'' hr)).tree) (Std.DTreeMap.Internal.Impl.Tree.size_impl (Std.DTreeMap.Internal.Impl.maxView k v l' r' (Std.DTreeMap.Internal.Impl.glue._proof_14 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_16 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_18 sz k v l' r' hl sz' k' v' l'' r'' hr)).tree))))))) (_private.Std.Data.DTreeMap.Internal.Operations.0.Std.DTreeMap.Internal.Impl.minView.match_3.splitter r (fun l hl hlr ↦ Eq l l → HEq hl hl → HEq hlr hlr → Std.DTreeMap.Internal.Impl.Balanced (Std.DTreeMap.Internal.Impl.minView.match_3 r (fun l hl hlr ↦ Std.DTreeMap.Internal.Impl.{u, v} α β) l hl hlr (fun hl hlr ↦ r) fun sz k v l' r' hl hlr ↦ Std.DTreeMap.Internal.Impl.glue.match_1 sz k v l' r' (fun r hr hlr ↦ Std.DTreeMap.Internal.Impl.{u, v} α β) r hr hlr (fun hr hlr ↦ l) fun sz' k' v' l'' r'' hr hlr ↦ ite (LT.lt sz sz') (Std.DTreeMap.Internal.Impl.balanceLErase (Std.DTreeMap.Internal.Impl.View.k (Std.DTreeMap.Internal.Impl.minView k' v' l'' r'' (Std.DTreeMap.Internal.Impl.glue._proof_4 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_6 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_8 sz k v l' r' hl sz' k' v' l'' r'' hr))) (Std.DTreeMap.Internal.Impl.View.v (Std.DTreeMap.Internal.Impl.minView k' v' l'' r'' (Std.DTreeMap.Internal.Impl.glue._proof_4 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_6 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_8 sz k v l' r' hl sz' k' v' l'' r'' hr))) (Std.DTreeMap.Internal.Impl.inner sz k v l' r') (Std.DTreeMap.Internal.Impl.Tree.impl (Std.DTreeMap.Internal.Impl.minView k' v' l'' r'' (Std.DTreeMap.Internal.Impl.glue._proof_4 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_6 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_8 sz k v l' r' hl sz' k' v' l'' r'' hr)).tree) hl (Std.DTreeMap.Internal.Impl.glue._proof_10 sz k v l' r' hl sz' k' v' l'' r'' hr (Std.DTreeMap.Internal.Impl.Tree.impl (Std.DTreeMap.Internal.Impl.minView k' v' l'' r'' (Std.DTreeMap.Internal.Impl.glue._proof_4 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_6 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_8 sz k v l' r' hl sz' k' v' l'' r'' hr)).tree) (Std.DTreeMap.Internal.Impl.Tree.balanced_impl (Std.DTreeMap.Internal.Impl.minView k' v' l'' r'' (Std.DTreeMap.Internal.Impl.glue._proof_4 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_6 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_8 sz k v l' r' hl sz' k' v' l'' r'' hr)).tree)) (Std.DTreeMap.Internal.Impl.glue._proof_12 sz k v l' r' sz' k' v' l'' r'' hr hlr (Std.DTreeMap.Internal.Impl.Tree.impl (Std.DTreeMap.Internal.Impl.minView k' v' l'' r'' (Std.DTreeMap.Internal.Impl.glue._proof_4 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_6 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_8 sz k v l' r' hl sz' k' v' l'' r'' hr)).tree) (Std.DTreeMap.Internal.Impl.Tree.size_impl (Std.DTreeMap.Internal.Impl.minView k' v' l'' r'' (Std.DTreeMap.Internal.Impl.glue._proof_4 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_6 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_8 sz k v l' r' hl sz' k' v' l'' r'' hr)).tree))) (Std.DTreeMap.Internal.Impl.balanceRErase (Std.DTreeMap.Internal.Impl.View.k (Std.DTreeMap.Internal.Impl.maxView k v l' r' (Std.DTreeMap.Internal.Impl.glue._proof_14 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_16 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_18 sz k v l' r' hl sz' k' v' l'' r'' hr))) (Std.DTreeMap.Internal.Impl.View.v (Std.DTreeMap.Internal.Impl.maxView k v l' r' (Std.DTreeMap.Internal.Impl.glue._proof_14 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_16 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_18 sz k v l' r' hl sz' k' v' l'' r'' hr))) (Std.DTreeMap.Internal.Impl.Tree.impl (Std.DTreeMap.Internal.Impl.maxView k v l' r' (Std.DTreeMap.Internal.Impl.glue._proof_14 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_16 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_18 sz k v l' r' hl sz' k' v' l'' r'' hr)).tree) (Std.DTreeMap.Internal.Impl.inner sz' k' v' l'' r'') (Std.DTreeMap.Internal.Impl.glue._proof_10 sz k v l' r' hl sz' k' v' l'' r'' hr (Std.DTreeMap.Internal.Impl.Tree.impl (Std.DTreeMap.Internal.Impl.maxView k v l' r' (Std.DTreeMap.Internal.Impl.glue._proof_14 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_16 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_18 sz k v l' r' hl sz' k' v' l'' r'' hr)).tree) (Std.DTreeMap.Internal.Impl.Tree.balanced_impl (Std.DTreeMap.Internal.Impl.maxView k v l' r' (Std.DTreeMap.Internal.Impl.glue._proof_14 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_16 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_18 sz k v l' r' hl sz' k' v' l'' r'' hr)).tree)) hr (Std.DTreeMap.Internal.Impl.glue._proof_20 sz k v l' r' hl sz' k' v' l'' r'' hlr (Std.DTreeMap.Internal.Impl.Tree.impl (Std.DTreeMap.Internal.Impl.maxView k v l' r' (Std.DTreeMap.Internal.Impl.glue._proof_14 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_16 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_18 sz k v l' r' hl sz' k' v' l'' r'' hr)).tree) (Std.DTreeMap.Internal.Impl.Tree.size_impl (Std.DTreeMap.Internal.Impl.maxView k v l' r' (Std.DTreeMap.Internal.Impl.glue._proof_14 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_16 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_18 sz k v l' r' hl sz' k' v' l'' r'' hr)).tree))))) l hl hlr (fun hl hlr h ↦ Eq.ndrec (fun {hl hlr} h ↦ Eq.ndrec (fun h ↦ Eq.ndrec (id hr) (Eq.symm (eq_of_heq h))) (Eq.symm (eq_of_heq h))) (Eq.symm h) hl hlr) (fun size k' v' l' r' hl hlr h ↦ Eq.ndrec (fun {hl hlr} h ↦ Eq.ndrec (fun h ↦ Eq.ndrec (id (_private.Std.Data.DTreeMap.Internal.Operations.0.Std.DTreeMap.Internal.Impl.glue.match_1.splitter size k' v' l' r' (fun r hr hlr ↦ Eq r r → HEq hr hr → HEq hlr hlr → Std.DTreeMap.Internal.Impl.Balanced (Std.DTreeMap.Internal.Impl.glue.match_1 size k' v' l' r' (fun r hr hlr ↦ Std.DTreeMap.Internal.Impl.{u, v} α β) r hr hlr (fun hr hlr ↦ Std.DTreeMap.Internal.Impl.inner size k' v' l' r') fun sz' k' v' l'' r'' hr hlr ↦ ite (LT.lt size sz') (Std.DTreeMap.Internal.Impl.balanceLErase (Std.DTreeMap.Internal.Impl.View.k (Std.DTreeMap.Internal.Impl.minView k' v' l'' r'' (Std.DTreeMap.Internal.Impl.glue._proof_4 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_6 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_8 size k' v' l' r' hl sz' k' v' l'' r'' hr))) (Std.DTreeMap.Internal.Impl.View.v (Std.DTreeMap.Internal.Impl.minView k' v' l'' r'' (Std.DTreeMap.Internal.Impl.glue._proof_4 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_6 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_8 size k' v' l' r' hl sz' k' v' l'' r'' hr))) (Std.DTreeMap.Internal.Impl.inner size k' v' l' r') (Std.DTreeMap.Internal.Impl.Tree.impl (Std.DTreeMap.Internal.Impl.minView k' v' l'' r'' (Std.DTreeMap.Internal.Impl.glue._proof_4 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_6 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_8 size k' v' l' r' hl sz' k' v' l'' r'' hr)).tree) hl (Std.DTreeMap.Internal.Impl.glue._proof_10 size k' v' l' r' hl sz' k' v' l'' r'' hr (Std.DTreeMap.Internal.Impl.Tree.impl (Std.DTreeMap.Internal.Impl.minView k' v' l'' r'' (Std.DTreeMap.Internal.Impl.glue._proof_4 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_6 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_8 size k' v' l' r' hl sz' k' v' l'' r'' hr)).tree) (Std.DTreeMap.Internal.Impl.Tree.balanced_impl (Std.DTreeMap.Internal.Impl.minView k' v' l'' r'' (Std.DTreeMap.Internal.Impl.glue._proof_4 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_6 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_8 size k' v' l' r' hl sz' k' v' l'' r'' hr)).tree)) (Std.DTreeMap.Internal.Impl.glue._proof_12 size k' v' l' r' sz' k' v' l'' r'' hr hlr (Std.DTreeMap.Internal.Impl.Tree.impl (Std.DTreeMap.Internal.Impl.minView k' v' l'' r'' (Std.DTreeMap.Internal.Impl.glue._proof_4 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_6 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_8 size k' v' l' r' hl sz' k' v' l'' r'' hr)).tree) (Std.DTreeMap.Internal.Impl.Tree.size_impl (Std.DTreeMap.Internal.Impl.minView k' v' l'' r'' (Std.DTreeMap.Internal.Impl.glue._proof_4 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_6 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_8 size k' v' l' r' hl sz' k' v' l'' r'' hr)).tree))) (Std.DTreeMap.Internal.Impl.balanceRErase (Std.DTreeMap.Internal.Impl.View.k (Std.DTreeMap.Internal.Impl.maxView k' v' l' r' (Std.DTreeMap.Internal.Impl.glue._proof_14 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_16 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_18 size k' v' l' r' hl sz' k' v' l'' r'' hr))) (Std.DTreeMap.Internal.Impl.View.v (Std.DTreeMap.Internal.Impl.maxView k' v' l' r' (Std.DTreeMap.Internal.Impl.glue._proof_14 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_16 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_18 size k' v' l' r' hl sz' k' v' l'' r'' hr))) (Std.DTreeMap.Internal.Impl.Tree.impl (Std.DTreeMap.Internal.Impl.maxView k' v' l' r' (Std.DTreeMap.Internal.Impl.glue._proof_14 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_16 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_18 size k' v' l' r' hl sz' k' v' l'' r'' hr)).tree) (Std.DTreeMap.Internal.Impl.inner sz' k' v' l'' r'') (Std.DTreeMap.Internal.Impl.glue._proof_10 size k' v' l' r' hl sz' k' v' l'' r'' hr (Std.DTreeMap.Internal.Impl.Tree.impl (Std.DTreeMap.Internal.Impl.maxView k' v' l' r' (Std.DTreeMap.Internal.Impl.glue._proof_14 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_16 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_18 size k' v' l' r' hl sz' k' v' l'' r'' hr)).tree) (Std.DTreeMap.Internal.Impl.Tree.balanced_impl (Std.DTreeMap.Internal.Impl.maxView k' v' l' r' (Std.DTreeMap.Internal.Impl.glue._proof_14 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_16 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_18 size k' v' l' r' hl sz' k' v' l'' r'' hr)).tree)) hr (Std.DTreeMap.Internal.Impl.glue._proof_20 size k' v' l' r' hl sz' k' v' l'' r'' hlr (Std.DTreeMap.Internal.Impl.Tree.impl (Std.DTreeMap.Internal.Impl.maxView k' v' l' r' (Std.DTreeMap.Internal.Impl.glue._proof_14 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_16 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_18 size k' v' l' r' hl sz' k' v' l'' r'' hr)).tree) (Std.DTreeMap.Internal.Impl.Tree.size_impl (Std.DTreeMap.Internal.Impl.maxView k' v' l' r' (Std.DTreeMap.Internal.Impl.glue._proof_14 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_16 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_18 size k' v' l' r' hl sz' k' v' l'' r'' hr)).tree))))) r hr hlr (fun hr hlr h ↦ Eq.ndrec (fun {hr} hlr hlr h ↦ Eq.ndrec (fun h ↦ Eq.ndrec (id (Eq.mpr (id (Std.DTreeMap.Internal.Impl.balanced_inner_iff._simp_1)) (And.casesOn (Eq.mp (Std.DTreeMap.Internal.Impl.balanced_inner_iff._simp_1) hl) (fun left right h ↦ And.casesOn right (fun left right h ↦ And.casesOn right (fun left right h ↦ And.intro left (And.intro left (And.intro left right))) (Eq.refl right)) (Eq.refl right)) (Eq.refl (Eq.mp (Std.DTreeMap.Internal.Impl.balanced_inner_iff._simp_1) hl))))) (Eq.symm (eq_of_heq h))) (Eq.symm (eq_of_heq h))) (Eq.symm h) hr hlr hlr) (fun sz' k' v' l'' r'' hr hlr h ↦ Eq.ndrec (fun {hr} hlr hlr h ↦ Eq.ndrec (fun h ↦ Eq.ndrec (id (Decidable.casesOn (Nat.decLt size sz') (fun h ↦ Eq.mpr (id (congrArg (Std.DTreeMap.Internal.Impl.Balanced) (if_neg h))) (of_eq_true (Std.DTreeMap.Internal.Impl.balanced_balanceRErase._simp_1 (Std.DTreeMap.Internal.Impl.glue._proof_10 size k' v' l' r' hl sz' k' v' l'' r'' hr (Std.DTreeMap.Internal.Impl.Tree.impl (Std.DTreeMap.Internal.Impl.maxView k' v' l' r' (Std.DTreeMap.Internal.Impl.glue._proof_14 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_16 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_18 size k' v' l' r' hl sz' k' v' l'' r'' hr)).tree) (Std.DTreeMap.Internal.Impl.Tree.balanced_impl (Std.DTreeMap.Internal.Impl.maxView k' v' l' r' (Std.DTreeMap.Internal.Impl.glue._proof_14 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_16 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_18 size k' v' l' r' hl sz' k' v' l'' r'' hr)).tree)) hr (Std.DTreeMap.Internal.Impl.glue._proof_20 size k' v' l' r' hl sz' k' v' l'' r'' hlr (Std.DTreeMap.Internal.Impl.Tree.impl (Std.DTreeMap.Internal.Impl.maxView k' v' l' r' (Std.DTreeMap.Internal.Impl.glue._proof_14 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_16 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_18 size k' v' l' r' hl sz' k' v' l'' r'' hr)).tree) (Std.DTreeMap.Internal.Impl.Tree.size_impl (Std.DTreeMap.Internal.Impl.maxView k' v' l' r' (Std.DTreeMap.Internal.Impl.glue._proof_14 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_16 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_18 size k' v' l' r' hl sz' k' v' l'' r'' hr)).tree))))) fun h ↦ Eq.mpr (id (congrArg (Std.DTreeMap.Internal.Impl.Balanced) (if_pos h))) (of_eq_true (Std.DTreeMap.Internal.Impl.balanced_balanceLErase._simp_1 hl (Std.DTreeMap.Internal.Impl.glue._proof_10 size k' v' l' r' hl sz' k' v' l'' r'' hr (Std.DTreeMap.Internal.Impl.Tree.impl (Std.DTreeMap.Internal.Impl.minView k' v' l'' r'' (Std.DTreeMap.Internal.Impl.glue._proof_4 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_6 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_8 size k' v' l' r' hl sz' k' v' l'' r'' hr)).tree) (Std.DTreeMap.Internal.Impl.Tree.balanced_impl (Std.DTreeMap.Internal.Impl.minView k' v' l'' r'' (Std.DTreeMap.Internal.Impl.glue._proof_4 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_6 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_8 size k' v' l' r' hl sz' k' v' l'' r'' hr)).tree)) (Std.DTreeMap.Internal.Impl.glue._proof_12 size k' v' l' r' sz' k' v' l'' r'' hr hlr (Std.DTreeMap.Internal.Impl.Tree.impl (Std.DTreeMap.Internal.Impl.minView k' v' l'' r'' (Std.DTreeMap.Internal.Impl.glue._proof_4 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_6 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_8 size k' v' l' r' hl sz' k' v' l'' r'' hr)).tree) (Std.DTreeMap.Internal.Impl.Tree.size_impl (Std.DTreeMap.Internal.Impl.minView k' v' l'' r'' (Std.DTreeMap.Internal.Impl.glue._proof_4 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_6 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_8 size k' v' l' r' hl sz' k' v' l'' r'' hr)).tree)))))) (Eq.symm (eq_of_heq h))) (Eq.symm (eq_of_heq h))) (Eq.symm h) hr hlr hlr) (Eq.refl r) (HEq.refl hr) (HEq.refl hlr))) (Eq.symm (eq_of_heq h))) (Eq.symm (eq_of_heq h))) (Eq.symm h) hl hlr) (Eq.refl l) (HEq.refl hl) (HEq.refl hlr))
has type
  (size : Nat) → (k : α) → (v : β k) → (l : Std.DTreeMap.Internal.Impl.{u, v} α β) → (r : Std.DTreeMap.Internal.Impl.{u, v} α β) → (fun x ↦ (hlb : Std.DTreeMap.Internal.Impl.Balanced (Std.DTreeMap.Internal.Impl.inner sz k v x r')) → (hlr : Std.DTreeMap.Internal.Impl.BalanceLErasePrecond (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner sz k v x r')) (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k v l r))) → (fun ll lr hlb hlr ↦ Std.DTreeMap.Internal.Impl.{u, v} α β) x r' hlb hlr) l → (fun x ↦ (hlb : Std.DTreeMap.Internal.Impl.Balanced (Std.DTreeMap.Internal.Impl.inner sz k v x r')) → (hlr : Std.DTreeMap.Internal.Impl.BalanceLErasePrecond (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner sz k v x r')) (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k v l r))) → (fun ll lr hlb hlr ↦ Std.DTreeMap.Internal.Impl.{u, v} α β) x r' hlb hlr) r → (hlb : Std.DTreeMap.Internal.Impl.Balanced (Std.DTreeMap.Internal.Impl.inner sz k v (Std.DTreeMap.Internal.Impl.inner size k v l r) r')) → (hlr : Std.DTreeMap.Internal.Impl.BalanceLErasePrecond (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner sz k v (Std.DTreeMap.Internal.Impl.inner size k v l r) r')) (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k v l r))) → (fun ll lr hlb hlr ↦ Std.DTreeMap.Internal.Impl.{u, v} α β) (Std.DTreeMap.Internal.Impl.inner size k v l r) r' hlb hlr
but is expected to have type
  (size : Nat) → (k : α) → (v : β k) → (l : Std.DTreeMap.Internal.Impl.{u, v} α β) → (r : Std.DTreeMap.Internal.Impl.{u, v} α β) → (fun x ↦ (hlb : Std.DTreeMap.Internal.Impl.Balanced (Std.DTreeMap.Internal.Impl.inner sz k v x r')) → (hlr : Std.DTreeMap.Internal.Impl.BalanceLErasePrecond (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner sz k v x r')) (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k v l r))) → (fun ll lr hlb hlr ↦ Std.DTreeMap.Internal.Impl.{u, v} α β) x r' hlb hlr) l → (fun x ↦ (hlb : Std.DTreeMap.Internal.Impl.Balanced (Std.DTreeMap.Internal.Impl.inner sz k v x r')) → (hlr : Std.DTreeMap.Internal.Impl.BalanceLErasePrecond (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner sz k v x r')) (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k v l r))) → (fun ll lr hlb hlr ↦ Std.DTreeMap.Internal.Impl.{u, v} α β) x r' hlb hlr) r → (fun x ↦ (hlb : Std.DTreeMap.Internal.Impl.Balanced (Std.DTreeMap.Internal.Impl.inner sz k v x r')) → (hlr : Std.DTreeMap.Internal.Impl.BalanceLErasePrecond (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner sz k v x r')) (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k v l r))) → (fun ll lr hlb hlr ↦ Std.DTreeMap.Internal.Impl.{u, v} α β) x r' hlb hlr) (Std.DTreeMap.Internal.Impl.inner size k v l r)
theorem Std.DTreeMap.Internal.Impl.size_glue.{u, v} : ∀ {α : Type u}, ∀ {β : α → Type v}, ∀ {l : Std.DTreeMap.Internal.Impl.{u, v} α β}, ∀ {r : Std.DTreeMap.Internal.Impl.{u, v} α β}, ∀ {hl : Std.DTreeMap.Internal.Impl.Balanced l}, ∀ {hr : Std.DTreeMap.Internal.Impl.Balanced r}, ∀ {hlr : Std.DTreeMap.Internal.Impl.BalancedAtRoot (Std.DTreeMap.Internal.Impl.size l) (Std.DTreeMap.Internal.Impl.size r)}, Eq (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.glue l r hl hr hlr)) (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size l) (Std.DTreeMap.Internal.Impl.size r)) := fun {α β l r hl hr hlr} ↦ Eq.mpr (id (congrArg (fun x ↦ Eq (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.minView.match_3 r (fun l hl hlr ↦ Std.DTreeMap.Internal.Impl.{u, v} α β) l hl hlr (fun hl hlr ↦ r) x)) (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size l) (Std.DTreeMap.Internal.Impl.size r))) (funext fun sz ↦ funext fun k ↦ funext fun v ↦ funext fun l' ↦ funext fun r' ↦ funext fun hl ↦ funext fun hlr ↦ congrArg (Std.DTreeMap.Internal.Impl.glue.match_1 sz k v l' r' (fun r hr hlr ↦ Std.DTreeMap.Internal.Impl.{u, v} α β) r hr hlr fun hr hlr ↦ l) (funext fun sz' ↦ funext fun k' ↦ funext fun v' ↦ funext fun l'' ↦ funext fun r'' ↦ funext fun hr ↦ funext fun hlr ↦ ite_congr (Eq.refl (LT.lt sz sz')) (fun a ↦ Eq.refl (Std.DTreeMap.Internal.Impl.balanceLErase (Std.DTreeMap.Internal.Impl.View.k (Std.DTreeMap.Internal.Impl.minView k' v' l'' r'' (Std.DTreeMap.Internal.Impl.glue._proof_4 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_6 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_8 sz k v l' r' hl sz' k' v' l'' r'' hr))) (Std.DTreeMap.Internal.Impl.View.v (Std.DTreeMap.Internal.Impl.minView k' v' l'' r'' (Std.DTreeMap.Internal.Impl.glue._proof_4 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_6 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_8 sz k v l' r' hl sz' k' v' l'' r'' hr))) (Std.DTreeMap.Internal.Impl.inner sz k v l' r') (Std.DTreeMap.Internal.Impl.Tree.impl (Std.DTreeMap.Internal.Impl.minView k' v' l'' r'' (Std.DTreeMap.Internal.Impl.glue._proof_4 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_6 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_8 sz k v l' r' hl sz' k' v' l'' r'' hr)).tree) hl (Std.DTreeMap.Internal.Impl.glue._proof_10 sz k v l' r' hl sz' k' v' l'' r'' hr (Std.DTreeMap.Internal.Impl.Tree.impl (Std.DTreeMap.Internal.Impl.minView k' v' l'' r'' (Std.DTreeMap.Internal.Impl.glue._proof_4 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_6 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_8 sz k v l' r' hl sz' k' v' l'' r'' hr)).tree) (Std.DTreeMap.Internal.Impl.Tree.balanced_impl (Std.DTreeMap.Internal.Impl.minView k' v' l'' r'' (Std.DTreeMap.Internal.Impl.glue._proof_4 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_6 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_8 sz k v l' r' hl sz' k' v' l'' r'' hr)).tree)) (Std.DTreeMap.Internal.Impl.glue._proof_12 sz k v l' r' sz' k' v' l'' r'' hr hlr (Std.DTreeMap.Internal.Impl.Tree.impl (Std.DTreeMap.Internal.Impl.minView k' v' l'' r'' (Std.DTreeMap.Internal.Impl.glue._proof_4 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_6 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_8 sz k v l' r' hl sz' k' v' l'' r'' hr)).tree) (Std.DTreeMap.Internal.Impl.Tree.size_impl (Std.DTreeMap.Internal.Impl.minView k' v' l'' r'' (Std.DTreeMap.Internal.Impl.glue._proof_4 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_6 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_8 sz k v l' r' hl sz' k' v' l'' r'' hr)).tree)))) fun a ↦ Eq.refl (Std.DTreeMap.Internal.Impl.balanceRErase (Std.DTreeMap.Internal.Impl.View.k (Std.DTreeMap.Internal.Impl.maxView k v l' r' (Std.DTreeMap.Internal.Impl.glue._proof_14 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_16 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_18 sz k v l' r' hl sz' k' v' l'' r'' hr))) (Std.DTreeMap.Internal.Impl.View.v (Std.DTreeMap.Internal.Impl.maxView k v l' r' (Std.DTreeMap.Internal.Impl.glue._proof_14 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_16 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_18 sz k v l' r' hl sz' k' v' l'' r'' hr))) (Std.DTreeMap.Internal.Impl.Tree.impl (Std.DTreeMap.Internal.Impl.maxView k v l' r' (Std.DTreeMap.Internal.Impl.glue._proof_14 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_16 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_18 sz k v l' r' hl sz' k' v' l'' r'' hr)).tree) (Std.DTreeMap.Internal.Impl.inner sz' k' v' l'' r'') (Std.DTreeMap.Internal.Impl.glue._proof_10 sz k v l' r' hl sz' k' v' l'' r'' hr (Std.DTreeMap.Internal.Impl.Tree.impl (Std.DTreeMap.Internal.Impl.maxView k v l' r' (Std.DTreeMap.Internal.Impl.glue._proof_14 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_16 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_18 sz k v l' r' hl sz' k' v' l'' r'' hr)).tree) (Std.DTreeMap.Internal.Impl.Tree.balanced_impl (Std.DTreeMap.Internal.Impl.maxView k v l' r' (Std.DTreeMap.Internal.Impl.glue._proof_14 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_16 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_18 sz k v l' r' hl sz' k' v' l'' r'' hr)).tree)) hr (Std.DTreeMap.Internal.Impl.glue._proof_20 sz k v l' r' hl sz' k' v' l'' r'' hlr (Std.DTreeMap.Internal.Impl.Tree.impl (Std.DTreeMap.Internal.Impl.maxView k v l' r' (Std.DTreeMap.Internal.Impl.glue._proof_14 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_16 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_18 sz k v l' r' hl sz' k' v' l'' r'' hr)).tree) (Std.DTreeMap.Internal.Impl.Tree.size_impl (Std.DTreeMap.Internal.Impl.maxView k v l' r' (Std.DTreeMap.Internal.Impl.glue._proof_14 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_16 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_18 sz k v l' r' hl sz' k' v' l'' r'' hr)).tree))))))) (_private.Std.Data.DTreeMap.Internal.Operations.0.Std.DTreeMap.Internal.Impl.minView.match_3.splitter r (fun l hl hlr ↦ Eq l l → HEq hl hl → HEq hlr hlr → Eq (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.minView.match_3 r (fun l hl hlr ↦ Std.DTreeMap.Internal.Impl.{u, v} α β) l hl hlr (fun hl hlr ↦ r) fun sz k v l' r' hl hlr ↦ Std.DTreeMap.Internal.Impl.glue.match_1 sz k v l' r' (fun r hr hlr ↦ Std.DTreeMap.Internal.Impl.{u, v} α β) r hr hlr (fun hr hlr ↦ l) fun sz' k' v' l'' r'' hr hlr ↦ ite (LT.lt sz sz') (Std.DTreeMap.Internal.Impl.balanceLErase (Std.DTreeMap.Internal.Impl.View.k (Std.DTreeMap.Internal.Impl.minView k' v' l'' r'' (Std.DTreeMap.Internal.Impl.glue._proof_4 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_6 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_8 sz k v l' r' hl sz' k' v' l'' r'' hr))) (Std.DTreeMap.Internal.Impl.View.v (Std.DTreeMap.Internal.Impl.minView k' v' l'' r'' (Std.DTreeMap.Internal.Impl.glue._proof_4 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_6 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_8 sz k v l' r' hl sz' k' v' l'' r'' hr))) (Std.DTreeMap.Internal.Impl.inner sz k v l' r') (Std.DTreeMap.Internal.Impl.Tree.impl (Std.DTreeMap.Internal.Impl.minView k' v' l'' r'' (Std.DTreeMap.Internal.Impl.glue._proof_4 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_6 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_8 sz k v l' r' hl sz' k' v' l'' r'' hr)).tree) hl (Std.DTreeMap.Internal.Impl.glue._proof_10 sz k v l' r' hl sz' k' v' l'' r'' hr (Std.DTreeMap.Internal.Impl.Tree.impl (Std.DTreeMap.Internal.Impl.minView k' v' l'' r'' (Std.DTreeMap.Internal.Impl.glue._proof_4 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_6 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_8 sz k v l' r' hl sz' k' v' l'' r'' hr)).tree) (Std.DTreeMap.Internal.Impl.Tree.balanced_impl (Std.DTreeMap.Internal.Impl.minView k' v' l'' r'' (Std.DTreeMap.Internal.Impl.glue._proof_4 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_6 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_8 sz k v l' r' hl sz' k' v' l'' r'' hr)).tree)) (Std.DTreeMap.Internal.Impl.glue._proof_12 sz k v l' r' sz' k' v' l'' r'' hr hlr (Std.DTreeMap.Internal.Impl.Tree.impl (Std.DTreeMap.Internal.Impl.minView k' v' l'' r'' (Std.DTreeMap.Internal.Impl.glue._proof_4 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_6 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_8 sz k v l' r' hl sz' k' v' l'' r'' hr)).tree) (Std.DTreeMap.Internal.Impl.Tree.size_impl (Std.DTreeMap.Internal.Impl.minView k' v' l'' r'' (Std.DTreeMap.Internal.Impl.glue._proof_4 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_6 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_8 sz k v l' r' hl sz' k' v' l'' r'' hr)).tree))) (Std.DTreeMap.Internal.Impl.balanceRErase (Std.DTreeMap.Internal.Impl.View.k (Std.DTreeMap.Internal.Impl.maxView k v l' r' (Std.DTreeMap.Internal.Impl.glue._proof_14 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_16 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_18 sz k v l' r' hl sz' k' v' l'' r'' hr))) (Std.DTreeMap.Internal.Impl.View.v (Std.DTreeMap.Internal.Impl.maxView k v l' r' (Std.DTreeMap.Internal.Impl.glue._proof_14 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_16 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_18 sz k v l' r' hl sz' k' v' l'' r'' hr))) (Std.DTreeMap.Internal.Impl.Tree.impl (Std.DTreeMap.Internal.Impl.maxView k v l' r' (Std.DTreeMap.Internal.Impl.glue._proof_14 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_16 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_18 sz k v l' r' hl sz' k' v' l'' r'' hr)).tree) (Std.DTreeMap.Internal.Impl.inner sz' k' v' l'' r'') (Std.DTreeMap.Internal.Impl.glue._proof_10 sz k v l' r' hl sz' k' v' l'' r'' hr (Std.DTreeMap.Internal.Impl.Tree.impl (Std.DTreeMap.Internal.Impl.maxView k v l' r' (Std.DTreeMap.Internal.Impl.glue._proof_14 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_16 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_18 sz k v l' r' hl sz' k' v' l'' r'' hr)).tree) (Std.DTreeMap.Internal.Impl.Tree.balanced_impl (Std.DTreeMap.Internal.Impl.maxView k v l' r' (Std.DTreeMap.Internal.Impl.glue._proof_14 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_16 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_18 sz k v l' r' hl sz' k' v' l'' r'' hr)).tree)) hr (Std.DTreeMap.Internal.Impl.glue._proof_20 sz k v l' r' hl sz' k' v' l'' r'' hlr (Std.DTreeMap.Internal.Impl.Tree.impl (Std.DTreeMap.Internal.Impl.maxView k v l' r' (Std.DTreeMap.Internal.Impl.glue._proof_14 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_16 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_18 sz k v l' r' hl sz' k' v' l'' r'' hr)).tree) (Std.DTreeMap.Internal.Impl.Tree.size_impl (Std.DTreeMap.Internal.Impl.maxView k v l' r' (Std.DTreeMap.Internal.Impl.glue._proof_14 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_16 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_18 sz k v l' r' hl sz' k' v' l'' r'' hr)).tree))))) (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size l) (Std.DTreeMap.Internal.Impl.size r))) l hl hlr (fun hl hlr h ↦ Eq.ndrec (fun {hl hlr} h ↦ Eq.ndrec (fun h ↦ Eq.ndrec (id (id (Decidable.byContradiction fun a ↦ _private.Std.Data.DTreeMap.Internal.Operations.0.Std.DTreeMap.Internal.Impl.minView._proof_5 r a))) (Eq.symm (eq_of_heq h))) (Eq.symm (eq_of_heq h))) (Eq.symm h) hl hlr) (fun size k' v' l' r' hl hlr h ↦ Eq.ndrec (fun {hl hlr} h ↦ Eq.ndrec (fun h ↦ Eq.ndrec (id (_private.Std.Data.DTreeMap.Internal.Operations.0.Std.DTreeMap.Internal.Impl.glue.match_1.splitter size k' v' l' r' (fun r hr hlr ↦ Eq r r → HEq hr hr → HEq hlr hlr → Eq (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.glue.match_1 size k' v' l' r' (fun r hr hlr ↦ Std.DTreeMap.Internal.Impl.{u, v} α β) r hr hlr (fun hr hlr ↦ Std.DTreeMap.Internal.Impl.inner size k' v' l' r') fun sz' k' v' l'' r'' hr hlr ↦ ite (LT.lt size sz') (Std.DTreeMap.Internal.Impl.balanceLErase (Std.DTreeMap.Internal.Impl.View.k (Std.DTreeMap.Internal.Impl.minView k' v' l'' r'' (Std.DTreeMap.Internal.Impl.glue._proof_4 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_6 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_8 size k' v' l' r' hl sz' k' v' l'' r'' hr))) (Std.DTreeMap.Internal.Impl.View.v (Std.DTreeMap.Internal.Impl.minView k' v' l'' r'' (Std.DTreeMap.Internal.Impl.glue._proof_4 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_6 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_8 size k' v' l' r' hl sz' k' v' l'' r'' hr))) (Std.DTreeMap.Internal.Impl.inner size k' v' l' r') (Std.DTreeMap.Internal.Impl.Tree.impl (Std.DTreeMap.Internal.Impl.minView k' v' l'' r'' (Std.DTreeMap.Internal.Impl.glue._proof_4 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_6 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_8 size k' v' l' r' hl sz' k' v' l'' r'' hr)).tree) hl (Std.DTreeMap.Internal.Impl.glue._proof_10 size k' v' l' r' hl sz' k' v' l'' r'' hr (Std.DTreeMap.Internal.Impl.Tree.impl (Std.DTreeMap.Internal.Impl.minView k' v' l'' r'' (Std.DTreeMap.Internal.Impl.glue._proof_4 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_6 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_8 size k' v' l' r' hl sz' k' v' l'' r'' hr)).tree) (Std.DTreeMap.Internal.Impl.Tree.balanced_impl (Std.DTreeMap.Internal.Impl.minView k' v' l'' r'' (Std.DTreeMap.Internal.Impl.glue._proof_4 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_6 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_8 size k' v' l' r' hl sz' k' v' l'' r'' hr)).tree)) (Std.DTreeMap.Internal.Impl.glue._proof_12 size k' v' l' r' sz' k' v' l'' r'' hr hlr (Std.DTreeMap.Internal.Impl.Tree.impl (Std.DTreeMap.Internal.Impl.minView k' v' l'' r'' (Std.DTreeMap.Internal.Impl.glue._proof_4 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_6 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_8 size k' v' l' r' hl sz' k' v' l'' r'' hr)).tree) (Std.DTreeMap.Internal.Impl.Tree.size_impl (Std.DTreeMap.Internal.Impl.minView k' v' l'' r'' (Std.DTreeMap.Internal.Impl.glue._proof_4 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_6 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_8 size k' v' l' r' hl sz' k' v' l'' r'' hr)).tree))) (Std.DTreeMap.Internal.Impl.balanceRErase (Std.DTreeMap.Internal.Impl.View.k (Std.DTreeMap.Internal.Impl.maxView k' v' l' r' (Std.DTreeMap.Internal.Impl.glue._proof_14 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_16 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_18 size k' v' l' r' hl sz' k' v' l'' r'' hr))) (Std.DTreeMap.Internal.Impl.View.v (Std.DTreeMap.Internal.Impl.maxView k' v' l' r' (Std.DTreeMap.Internal.Impl.glue._proof_14 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_16 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_18 size k' v' l' r' hl sz' k' v' l'' r'' hr))) (Std.DTreeMap.Internal.Impl.Tree.impl (Std.DTreeMap.Internal.Impl.maxView k' v' l' r' (Std.DTreeMap.Internal.Impl.glue._proof_14 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_16 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_18 size k' v' l' r' hl sz' k' v' l'' r'' hr)).tree) (Std.DTreeMap.Internal.Impl.inner sz' k' v' l'' r'') (Std.DTreeMap.Internal.Impl.glue._proof_10 size k' v' l' r' hl sz' k' v' l'' r'' hr (Std.DTreeMap.Internal.Impl.Tree.impl (Std.DTreeMap.Internal.Impl.maxView k' v' l' r' (Std.DTreeMap.Internal.Impl.glue._proof_14 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_16 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_18 size k' v' l' r' hl sz' k' v' l'' r'' hr)).tree) (Std.DTreeMap.Internal.Impl.Tree.balanced_impl (Std.DTreeMap.Internal.Impl.maxView k' v' l' r' (Std.DTreeMap.Internal.Impl.glue._proof_14 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_16 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_18 size k' v' l' r' hl sz' k' v' l'' r'' hr)).tree)) hr (Std.DTreeMap.Internal.Impl.glue._proof_20 size k' v' l' r' hl sz' k' v' l'' r'' hlr (Std.DTreeMap.Internal.Impl.Tree.impl (Std.DTreeMap.Internal.Impl.maxView k' v' l' r' (Std.DTreeMap.Internal.Impl.glue._proof_14 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_16 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_18 size k' v' l' r' hl sz' k' v' l'' r'' hr)).tree) (Std.DTreeMap.Internal.Impl.Tree.size_impl (Std.DTreeMap.Internal.Impl.maxView k' v' l' r' (Std.DTreeMap.Internal.Impl.glue._proof_14 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_16 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_18 size k' v' l' r' hl sz' k' v' l'' r'' hr)).tree))))) (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k' v' l' r')) (Std.DTreeMap.Internal.Impl.size r))) r hr hlr (fun hr hlr h ↦ Eq.ndrec (fun {hr} hlr hlr h ↦ Eq.ndrec (fun h ↦ Eq.ndrec (id (id (And.casesOn (Eq.mp (Std.DTreeMap.Internal.Impl.balanced_inner_iff._simp_1) hl) (fun left right h ↦ And.casesOn right (fun left right h ↦ And.casesOn right (fun left right h ↦ Eq.casesOn right (fun h ↦ Eq.ndrec (fun hlr hlr right h ↦ Decidable.byContradiction fun a ↦ _private.Std.Data.DTreeMap.Internal.Operations.0.Std.DTreeMap.Internal.Impl.size_glue._proof_1_9 l' r' a) h hlr hlr right) (Eq.refl (HAdd.hAdd (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size l') (OfNat.ofNat 1)) (Std.DTreeMap.Internal.Impl.size r'))) (HEq.refl right)) (Eq.refl right)) (Eq.refl right)) (Eq.refl (Eq.mp (Std.DTreeMap.Internal.Impl.balanced_inner_iff._simp_1) hl))))) (Eq.symm (eq_of_heq h))) (Eq.symm (eq_of_heq h))) (Eq.symm h) hr hlr hlr) (fun sz' k' v' l'' r'' hr hlr h ↦ Eq.ndrec (fun {hr} hlr hlr h ↦ Eq.ndrec (fun h ↦ Eq.ndrec (id (Decidable.casesOn (Nat.decLt size sz') (fun h ↦ Eq.mpr (id (congrArg (fun x ↦ Eq (Std.DTreeMap.Internal.Impl.size x) (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k' v' l' r')) (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner sz' k' v' l'' r'')))) (if_neg h))) (Eq.mpr (id (congrArg (fun x ↦ Eq x (HAdd.hAdd size sz')) (Eq.trans (Std.DTreeMap.Internal.Impl.size_balanceRErase (Std.DTreeMap.Internal.Impl.glue._proof_10 size k' v' l' r' hl sz' k' v' l'' r'' hr (Std.DTreeMap.Internal.Impl.Tree.impl (Std.DTreeMap.Internal.Impl.maxView k' v' l' r' (Std.DTreeMap.Internal.Impl.glue._proof_14 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_16 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_18 size k' v' l' r' hl sz' k' v' l'' r'' hr)).tree) (Std.DTreeMap.Internal.Impl.Tree.balanced_impl (Std.DTreeMap.Internal.Impl.maxView k' v' l' r' (Std.DTreeMap.Internal.Impl.glue._proof_14 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_16 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_18 size k' v' l' r' hl sz' k' v' l'' r'' hr)).tree)) hr (Std.DTreeMap.Internal.Impl.glue._proof_20 size k' v' l' r' hl sz' k' v' l'' r'' hlr (Std.DTreeMap.Internal.Impl.Tree.impl (Std.DTreeMap.Internal.Impl.maxView k' v' l' r' (Std.DTreeMap.Internal.Impl.glue._proof_14 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_16 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_18 size k' v' l' r' hl sz' k' v' l'' r'' hr)).tree) (Std.DTreeMap.Internal.Impl.Tree.size_impl (Std.DTreeMap.Internal.Impl.maxView k' v' l' r' (Std.DTreeMap.Internal.Impl.glue._proof_14 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_16 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_18 size k' v' l' r' hl sz' k' v' l'' r'' hr)).tree))) (congrArg (fun x ↦ HAdd.hAdd (HAdd.hAdd x (OfNat.ofNat 1)) sz') (Std.DTreeMap.Internal.Impl.Tree.size_impl (Std.DTreeMap.Internal.Impl.maxView k' v' l' r' (Std.DTreeMap.Internal.Impl.glue._proof_14 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_16 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_18 size k' v' l' r' hl sz' k' v' l'' r'' hr)).tree))))) (And.casesOn (Eq.mp (Std.DTreeMap.Internal.Impl.balanced_inner_iff._simp_1) hr) (fun left right h ↦ And.casesOn right (fun left right h ↦ And.casesOn right (fun left right h ↦ And.casesOn (Eq.mp (Std.DTreeMap.Internal.Impl.balanced_inner_iff._simp_1) hl) (fun left right h ↦ And.casesOn right (fun left right h ↦ And.casesOn right (fun left right h ↦ Eq.casesOn right (fun h ↦ Eq.ndrec (fun hlr hlr h right h ↦ Eq.casesOn right (fun h ↦ Eq.ndrec (fun hlr right hlr h h ↦ Decidable.byContradiction fun a ↦ _private.Std.Data.DTreeMap.Internal.Operations.0.Std.DTreeMap.Internal.Impl.size_glue._proof_1_11 l' r' l'' r'' a) h hlr right hlr h) (Eq.refl (HAdd.hAdd (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size l') (OfNat.ofNat 1)) (Std.DTreeMap.Internal.Impl.size r'))) (HEq.refl right)) h hlr hlr h right) (Eq.refl (HAdd.hAdd (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size l'') (OfNat.ofNat 1)) (Std.DTreeMap.Internal.Impl.size r''))) (HEq.refl right)) (Eq.refl right)) (Eq.refl right)) (Eq.refl (Eq.mp (Std.DTreeMap.Internal.Impl.balanced_inner_iff._simp_1) hl))) (Eq.refl right)) (Eq.refl right)) (Eq.refl (Eq.mp (Std.DTreeMap.Internal.Impl.balanced_inner_iff._simp_1) hr))))) fun h ↦ Eq.mpr (id (congrArg (fun x ↦ Eq (Std.DTreeMap.Internal.Impl.size x) (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k' v' l' r')) (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner sz' k' v' l'' r'')))) (if_pos h))) (Eq.mpr (id (congrArg (fun x ↦ Eq x (HAdd.hAdd size sz')) (Eq.trans (Std.DTreeMap.Internal.Impl.size_balanceLErase hl (Std.DTreeMap.Internal.Impl.glue._proof_10 size k' v' l' r' hl sz' k' v' l'' r'' hr (Std.DTreeMap.Internal.Impl.Tree.impl (Std.DTreeMap.Internal.Impl.minView k' v' l'' r'' (Std.DTreeMap.Internal.Impl.glue._proof_4 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_6 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_8 size k' v' l' r' hl sz' k' v' l'' r'' hr)).tree) (Std.DTreeMap.Internal.Impl.Tree.balanced_impl (Std.DTreeMap.Internal.Impl.minView k' v' l'' r'' (Std.DTreeMap.Internal.Impl.glue._proof_4 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_6 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_8 size k' v' l' r' hl sz' k' v' l'' r'' hr)).tree)) (Std.DTreeMap.Internal.Impl.glue._proof_12 size k' v' l' r' sz' k' v' l'' r'' hr hlr (Std.DTreeMap.Internal.Impl.Tree.impl (Std.DTreeMap.Internal.Impl.minView k' v' l'' r'' (Std.DTreeMap.Internal.Impl.glue._proof_4 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_6 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_8 size k' v' l' r' hl sz' k' v' l'' r'' hr)).tree) (Std.DTreeMap.Internal.Impl.Tree.size_impl (Std.DTreeMap.Internal.Impl.minView k' v' l'' r'' (Std.DTreeMap.Internal.Impl.glue._proof_4 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_6 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_8 size k' v' l' r' hl sz' k' v' l'' r'' hr)).tree))) (congrArg (HAdd.hAdd (HAdd.hAdd size (OfNat.ofNat 1))) (Std.DTreeMap.Internal.Impl.Tree.size_impl (Std.DTreeMap.Internal.Impl.minView k' v' l'' r'' (Std.DTreeMap.Internal.Impl.glue._proof_4 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_6 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_8 size k' v' l' r' hl sz' k' v' l'' r'' hr)).tree))))) (And.casesOn (Eq.mp (Std.DTreeMap.Internal.Impl.balanced_inner_iff._simp_1) hr) (fun left right h ↦ And.casesOn right (fun left right h ↦ And.casesOn right (fun left right h ↦ And.casesOn (Eq.mp (Std.DTreeMap.Internal.Impl.balanced_inner_iff._simp_1) hl) (fun left right h ↦ And.casesOn right (fun left right h ↦ And.casesOn right (fun left right h ↦ Eq.casesOn right (fun h ↦ Eq.ndrec (fun hlr hlr h right h ↦ Eq.casesOn right (fun h ↦ Eq.ndrec (fun hlr right hlr h h ↦ Decidable.byContradiction fun a ↦ _private.Std.Data.DTreeMap.Internal.Operations.0.Std.DTreeMap.Internal.Impl.size_glue._proof_1_10 l' r' l'' r'' a) h hlr right hlr h) (Eq.refl (HAdd.hAdd (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size l') (OfNat.ofNat 1)) (Std.DTreeMap.Internal.Impl.size r'))) (HEq.refl right)) h hlr hlr h right) (Eq.refl (HAdd.hAdd (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size l'') (OfNat.ofNat 1)) (Std.DTreeMap.Internal.Impl.size r''))) (HEq.refl right)) (Eq.refl right)) (Eq.refl right)) (Eq.refl (Eq.mp (Std.DTreeMap.Internal.Impl.balanced_inner_iff._simp_1) hl))) (Eq.refl right)) (Eq.refl right)) (Eq.refl (Eq.mp (Std.DTreeMap.Internal.Impl.balanced_inner_iff._simp_1) hr)))))) (Eq.symm (eq_of_heq h))) (Eq.symm (eq_of_heq h))) (Eq.symm h) hr hlr hlr) (Eq.refl r) (HEq.refl hr) (HEq.refl hlr))) (Eq.symm (eq_of_heq h))) (Eq.symm (eq_of_heq h))) (Eq.symm h) hl hlr) (Eq.refl l) (HEq.refl hl) (HEq.refl hlr))
has type
  (size : Nat) → (k : α) → (v : β k) → (l : Std.DTreeMap.Internal.Impl.{u, v} α β) → (r : Std.DTreeMap.Internal.Impl.{u, v} α β) → (fun x ↦ (hlb : Std.DTreeMap.Internal.Impl.Balanced (Std.DTreeMap.Internal.Impl.inner sz k v x r')) → (hlr : Std.DTreeMap.Internal.Impl.BalanceLErasePrecond (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner sz k v x r')) (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k v l r))) → (fun ll lr hlb hlr ↦ Std.DTreeMap.Internal.Impl.{u, v} α β) x r' hlb hlr) l → (fun x ↦ (hlb : Std.DTreeMap.Internal.Impl.Balanced (Std.DTreeMap.Internal.Impl.inner sz k v x r')) → (hlr : Std.DTreeMap.Internal.Impl.BalanceLErasePrecond (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner sz k v x r')) (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k v l r))) → (fun ll lr hlb hlr ↦ Std.DTreeMap.Internal.Impl.{u, v} α β) x r' hlb hlr) r → (hlb : Std.DTreeMap.Internal.Impl.Balanced (Std.DTreeMap.Internal.Impl.inner sz k v (Std.DTreeMap.Internal.Impl.inner size k v l r) r')) → (hlr : Std.DTreeMap.Internal.Impl.BalanceLErasePrecond (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner sz k v (Std.DTreeMap.Internal.Impl.inner size k v l r) r')) (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k v l r))) → (fun ll lr hlb hlr ↦ Std.DTreeMap.Internal.Impl.{u, v} α β) (Std.DTreeMap.Internal.Impl.inner size k v l r) r' hlb hlr
but is expected to have type
  (size : Nat) → (k : α) → (v : β k) → (l : Std.DTreeMap.Internal.Impl.{u, v} α β) → (r : Std.DTreeMap.Internal.Impl.{u, v} α β) → (fun x ↦ (hlb : Std.DTreeMap.Internal.Impl.Balanced (Std.DTreeMap.Internal.Impl.inner sz k v x r')) → (hlr : Std.DTreeMap.Internal.Impl.BalanceLErasePrecond (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner sz k v x r')) (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k v l r))) → (fun ll lr hlb hlr ↦ Std.DTreeMap.Internal.Impl.{u, v} α β) x r' hlb hlr) l → (fun x ↦ (hlb : Std.DTreeMap.Internal.Impl.Balanced (Std.DTreeMap.Internal.Impl.inner sz k v x r')) → (hlr : Std.DTreeMap.Internal.Impl.BalanceLErasePrecond (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner sz k v x r')) (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k v l r))) → (fun ll lr hlb hlr ↦ Std.DTreeMap.Internal.Impl.{u, v} α β) x r' hlb hlr) r → (fun x ↦ (hlb : Std.DTreeMap.Internal.Impl.Balanced (Std.DTreeMap.Internal.Impl.inner sz k v x r')) → (hlr : Std.DTreeMap.Internal.Impl.BalanceLErasePrecond (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner sz k v x r')) (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k v l r))) → (fun ll lr hlb hlr ↦ Std.DTreeMap.Internal.Impl.{u, v} α β) x r' hlb hlr) (Std.DTreeMap.Internal.Impl.inner size k v l r)

Test "init"

Expected: 👍 accept · Size: 309.5 MB · Lines: 6.1 M · lean4export: 3.1.0 · Lean: 4.29.0 · 📄 Declaration · 🔗 Source

The Init module export from Lean 4 core.

This test contains the fundamental building blocks of Lean 4, including:

  • Basic data types (Nat, List, Array, String, etc.)
  • Core tactics and syntax
  • Foundational mathematical structures
  • Essential metaprogramming infrastructure

This is one of the smallest meaningful test cases, making it ideal for initial checker validation and debugging.

Test result: ✋ rejected · exit code 1 · wall time: 3.0 m · instructions: 957.1 G · max rss memory: 14.1 GB

Test "init-prelude"

Expected: 👍 accept · Size: 3.5 MB · Lines: 63.7 k · lean4export: 3.1.0 · Lean: 4.29.0 · 📄 Declaration · 🔗 Source

The Init.Prelude module export.

Test result: 👍 accepted · exit code 0 · wall time: 315 ms · instructions: 1.8 G · max rss memory: 96.7 MB

stderr:
checked in 0.287581s

Test "level-imax-leq"

Expected: ✋ reject · Size: 5.6 KB · Lines: 93 · lean4export: 3.1.0 · Lean: 4.29.0-rc1 · 📄 Declaration

Proof of False via incorrect universe level comparison for imax.

A correct kernel must reject leq(imax(u,v)+1, imax(u,v)), since at u=0, v=0 this becomes leq(1, 0) which is false. However, a checker that only compares the imax arguments structurally (without accounting for an accumulated successor offset) will incorrectly accept it.

This allows defining a universe-collapsing identity function down.{u,v} : Sort (succ (imax u v)) → Sort (imax u v), which is used to cast between True and False via Bool.rec at Sort (imax 0 0) = Prop.

Nanoda incorrectly accepted this proof until it was fixed.

Test result: ✋ rejected · exit code 1 · wall time: 6 ms · instructions: 12.2 M · max rss memory: 7.5 MB

stderr:
def down.{u, v} : Type (imax u v) → Sort (imax u v) :=
  fun x ↦ x
  ^^^^^^^^^
  has type
    Type (imax u v) → Type (imax u v)
  but is expected to have type
    Type (imax u v) → Sort (imax u v)
checked in 0.000550s

Test "level-imax-normalization"

Expected: ✋ reject · Size: 5.8 KB · Lines: 96 · lean4export: 3.1.0 · Lean: 4.26.0 · 📄 Declaration

Proof of False via incorrect universe level normalization for imax.

A correct kernel must distinguish imax 0 v from succ(imax 0 v), since at v=0 these evaluate to 0 and 1 respectively. However, a level normalization algorithm that drops an accumulated successor offset when decomposing imax u (param v) will produce identical normal forms for both, causing the equivalence check to incorrectly return true.

This allows defining a universe-collapsing identity function down.{v} : Sort (succ (imax 0 v)) → Sort (imax 0 v), and then myProp : Prop := down.{0} Bool (a Prop that is computationally Bool). Proof irrelevance on myProp equates Bool.true and Bool.false, and Bool.rec maps this into False.

Test result: ✋ rejected · exit code 1 · wall time: 6 ms · instructions: 12.1 M · max rss memory: 7.4 MB

stderr:
def down.{v} : Type v → Sort v :=
  fun x ↦ x
  ^^^^^^^^^
  has type
    Type v → Type v
  but is expected to have type
    Type v → Sort v
checked in 0.000563s

Test "mathlib"

Expected: 👍 accept · Size: 5.2 GB · Lines: 100.0 M · lean4export: 3.1.0 · Lean: 4.29.0 · 📄 Declaration · 🔗 Source

The complete Mathlib library export.

This test contains all the mathematical definitions, theorems, and proofs from Mathlib, representing the largest and most comprehensive test case in the Lean kernel arena.

Test result: ✋ rejected · exit code 1 · wall time: 3.0 m · instructions: 953.3 G · max rss memory: 14.1 GB

stderr:
theorem Lean.Grind.CommRing.Mon.revlexWF._unary.eq_def : ∀ (_x : PSigma fun m₁ ↦ Lean.Grind.CommRing.Mon), Eq (Lean.Grind.CommRing.Mon.revlexWF._unary _x) (PSigma.casesOn _x fun m₁ m₂ ↦ Lean.Grind.CommRing.Mon.revlexWF.match_1.{1} (fun m₁ x ↦ Ordering) m₁ m₂ (fun _ ↦ Ordering.eq) (fun p m ↦ Ordering.gt) (fun p m ↦ Ordering.lt) fun pw₁ m₁ pw₂ m₂ ↦ cond (BEq.beq (Lean.Grind.CommRing.Power.x pw₁) (Lean.Grind.CommRing.Power.x pw₂)) (Ordering.then (Lean.Grind.CommRing.Mon.revlexWF._unary (PSigma.mk m₁ m₂)) (Lean.Grind.CommRing.powerRevlex (Lean.Grind.CommRing.Power.k pw₁) (Lean.Grind.CommRing.Power.k pw₂))) (cond (Nat.blt (Lean.Grind.CommRing.Power.x pw₁) (Lean.Grind.CommRing.Power.x pw₂)) (Ordering.then (Lean.Grind.CommRing.Mon.revlexWF._unary (PSigma.mk m₁ (Lean.Grind.CommRing.Mon.mult pw₂ m₂))) Ordering.lt) (Ordering.then (Lean.Grind.CommRing.Mon.revlexWF._unary (PSigma.mk (Lean.Grind.CommRing.Mon.mult pw₁ m₁) m₂)) Ordering.gt))) := fun _x ↦ id (Eq.trans (WellFounded.fix_eq Lean.Grind.CommRing.Mon.revlexWF._unary._proof_1 (fun _x a ↦ PSigma.casesOn _x (fun m₁ m₂ a ↦ Lean.Grind.CommRing.Mon.revlexWF.match_1.{1} (fun m₁ m₂ ↦ ((y : PSigma fun m₁ ↦ Lean.Grind.CommRing.Mon) → (invImage (fun x ↦ PSigma.casesOn x fun m₁ m₂ ↦ Prod.mk m₁ m₂) (Prod.instWellFoundedRelation (sizeOfWFRel) (sizeOfWFRel))).rel y (PSigma.mk m₁ m₂) → Ordering) → Ordering) m₁ m₂ (fun _ x ↦ Ordering.eq) (fun p m x ↦ Ordering.gt) (fun p m x ↦ Ordering.lt) (fun pw₁ m₁ pw₂ m₂ x ↦ cond (BEq.beq (Lean.Grind.CommRing.Power.x pw₁) (Lean.Grind.CommRing.Power.x pw₂)) (Ordering.then (x (PSigma.mk m₁ m₂) (Lean.Grind.CommRing.Mon.revlexWF._unary._proof_2 pw₁ m₁ pw₂ m₂)) (Lean.Grind.CommRing.powerRevlex (Lean.Grind.CommRing.Power.k pw₁) (Lean.Grind.CommRing.Power.k pw₂))) (cond (Nat.blt (Lean.Grind.CommRing.Power.x pw₁) (Lean.Grind.CommRing.Power.x pw₂)) (Ordering.then (x (PSigma.mk m₁ (Lean.Grind.CommRing.Mon.mult pw₂ m₂)) (Lean.Grind.CommRing.Mon.revlexWF._unary._proof_3 pw₁ m₁ pw₂ m₂)) Ordering.lt) (Ordering.then (x (PSigma.mk (Lean.Grind.CommRing.Mon.mult pw₁ m₁) m₂) (Lean.Grind.CommRing.Mon.revlexWF._unary._proof_4 pw₁ m₁ pw₂ m₂)) Ordering.gt))) a) a) _x) (Eq.mpr (id (congrFun' (congrArg (Eq) (Eq.trans (_private.Init.Grind.Ring.CommSolver.0.PSigma.casesOn._arg_pusher (PSigma fun m₁ ↦ Lean.Grind.CommRing.Mon) (fun _x ↦ Ordering) Lean.Grind.CommRing.Mon.revlexWF._unary (fun _x y ↦ (invImage (fun x ↦ PSigma.casesOn x fun m₁ m₂ ↦ Prod.mk m₁ m₂) (Prod.instWellFoundedRelation (sizeOfWFRel) (sizeOfWFRel))).rel y _x) _x fun m₁ m₂ a ↦ Lean.Grind.CommRing.Mon.revlexWF.match_1.{1} (fun m₁ m₂ ↦ ((y : PSigma fun m₁ ↦ Lean.Grind.CommRing.Mon) → (invImage (fun x ↦ PSigma.casesOn x fun m₁ m₂ ↦ Prod.mk m₁ m₂) (Prod.instWellFoundedRelation (sizeOfWFRel) (sizeOfWFRel))).rel y (PSigma.mk m₁ m₂) → Ordering) → Ordering) m₁ m₂ (fun _ x ↦ Ordering.eq) (fun p m x ↦ Ordering.gt) (fun p m x ↦ Ordering.lt) (fun pw₁ m₁ pw₂ m₂ x ↦ cond (BEq.beq (Lean.Grind.CommRing.Power.x pw₁) (Lean.Grind.CommRing.Power.x pw₂)) (Ordering.then (x (PSigma.mk m₁ m₂) (Lean.Grind.CommRing.Mon.revlexWF._unary._proof_2 pw₁ m₁ pw₂ m₂)) (Lean.Grind.CommRing.powerRevlex (Lean.Grind.CommRing.Power.k pw₁) (Lean.Grind.CommRing.Power.k pw₂))) (cond (Nat.blt (Lean.Grind.CommRing.Power.x pw₁) (Lean.Grind.CommRing.Power.x pw₂)) (Ordering.then (x (PSigma.mk m₁ (Lean.Grind.CommRing.Mon.mult pw₂ m₂)) (Lean.Grind.CommRing.Mon.revlexWF._unary._proof_3 pw₁ m₁ pw₂ m₂)) Ordering.lt) (Ordering.then (x (PSigma.mk (Lean.Grind.CommRing.Mon.mult pw₁ m₁) m₂) (Lean.Grind.CommRing.Mon.revlexWF._unary._proof_4 pw₁ m₁ pw₂ m₂)) Ordering.gt))) a) (congrFun' (congrArg (PSigma.rec) (funext fun fst ↦ funext fun snd ↦ _private.Init.Grind.Ring.CommSolver.0.Lean.Grind.CommRing.Mon.revlexWF.match_1._arg_pusher.{1, 1, 1} (fun m₁ x ↦ Ordering) (PSigma fun m₁ ↦ Lean.Grind.CommRing.Mon) (fun _x ↦ Ordering) Lean.Grind.CommRing.Mon.revlexWF._unary (fun m₁ m₂ y ↦ (invImage (fun x ↦ PSigma.casesOn x fun m₁ m₂ ↦ Prod.mk m₁ m₂) (Prod.instWellFoundedRelation (sizeOfWFRel) (sizeOfWFRel))).rel y (PSigma.mk m₁ m₂)) fst snd (fun _ x ↦ Ordering.eq) (fun p m x ↦ Ordering.gt) (fun p m x ↦ Ordering.lt) fun pw₁ m₁ pw₂ m₂ x ↦ cond (BEq.beq (Lean.Grind.CommRing.Power.x pw₁) (Lean.Grind.CommRing.Power.x pw₂)) (Ordering.then (x (PSigma.mk m₁ m₂) (Lean.Grind.CommRing.Mon.revlexWF._unary._proof_2 pw₁ m₁ pw₂ m₂)) (Lean.Grind.CommRing.powerRevlex (Lean.Grind.CommRing.Power.k pw₁) (Lean.Grind.CommRing.Power.k pw₂))) (cond (Nat.blt (Lean.Grind.CommRing.Power.x pw₁) (Lean.Grind.CommRing.Power.x pw₂)) (Ordering.then (x (PSigma.mk m₁ (Lean.Grind.CommRing.Mon.mult pw₂ m₂)) (Lean.Grind.CommRing.Mon.revlexWF._unary._proof_3 pw₁ m₁ pw₂ m₂)) Ordering.lt) (Ordering.then (x (PSigma.mk (Lean.Grind.CommRing.Mon.mult pw₁ m₁) m₂) (Lean.Grind.CommRing.Mon.revlexWF._unary._proof_4 pw₁ m₁ pw₂ m₂)) Ordering.gt)))) _x))) (PSigma.rec (fun m₁ m₂ ↦ Lean.Grind.CommRing.Mon.revlexWF.match_1.{1} (fun m₁ x ↦ Ordering) m₁ m₂ (fun _ ↦ Ordering.eq) (fun p m ↦ Ordering.gt) (fun p m ↦ Ordering.lt) fun pw₁ m₁ pw₂ m₂ ↦ cond (BEq.beq (Lean.Grind.CommRing.Power.x pw₁) (Lean.Grind.CommRing.Power.x pw₂)) (Ordering.then (Lean.Grind.CommRing.Mon.revlexWF._unary (PSigma.mk m₁ m₂)) (Lean.Grind.CommRing.powerRevlex (Lean.Grind.CommRing.Power.k pw₁) (Lean.Grind.CommRing.Power.k pw₂))) (cond (Nat.blt (Lean.Grind.CommRing.Power.x pw₁) (Lean.Grind.CommRing.Power.x pw₂)) (Ordering.then (Lean.Grind.CommRing.Mon.revlexWF._unary (PSigma.mk m₁ (Lean.Grind.CommRing.Mon.mult pw₂ m₂))) Ordering.lt) (Ordering.then (Lean.Grind.CommRing.Mon.revlexWF._unary (PSigma.mk (Lean.Grind.CommRing.Mon.mult pw₁ m₁) m₂)) Ordering.gt))) _x))) (Eq.refl (PSigma.rec (fun m₁ m₂ ↦ Lean.Grind.CommRing.Mon.revlexWF.match_1.{1} (fun m₁ x ↦ Ordering) m₁ m₂ (fun _ ↦ Ordering.eq) (fun p m ↦ Ordering.gt) (fun p m ↦ Ordering.lt) fun pw₁ m₁ pw₂ m₂ ↦ cond (BEq.beq (Lean.Grind.CommRing.Power.x pw₁) (Lean.Grind.CommRing.Power.x pw₂)) (Ordering.then (Lean.Grind.CommRing.Mon.revlexWF._unary (PSigma.mk m₁ m₂)) (Lean.Grind.CommRing.powerRevlex (Lean.Grind.CommRing.Power.k pw₁) (Lean.Grind.CommRing.Power.k pw₂))) (cond (Nat.blt (Lean.Grind.CommRing.Power.x pw₁) (Lean.Grind.CommRing.Power.x pw₂)) (Ordering.then (Lean.Grind.CommRing.Mon.revlexWF._unary (PSigma.mk m₁ (Lean.Grind.CommRing.Mon.mult pw₂ m₂))) Ordering.lt) (Ordering.then (Lean.Grind.CommRing.Mon.revlexWF._unary (PSigma.mk (Lean.Grind.CommRing.Mon.mult pw₁ m₁) m₂)) Ordering.gt))) _x))))
has type
  (p : Lean.Grind.CommRing.Power) → (m : Lean.Grind.CommRing.Mon) → (fun x ↦ (fun m₁ m₂ ↦ ((y : PSigma fun m₁ ↦ Lean.Grind.CommRing.Mon) → (invImage (fun x ↦ PSigma.casesOn x fun m₁ m₂ ↦ Prod.mk m₁ m₂) (Prod.instWellFoundedRelation (sizeOfWFRel) (sizeOfWFRel))).rel y (PSigma.mk m₁ m₂) → Ordering) → Ordering) (Lean.Grind.CommRing.Mon.mult p m) x) m → ((y : PSigma fun m₁ ↦ Lean.Grind.CommRing.Mon) → (invImage (fun x ↦ PSigma.casesOn x fun m₁ m₂ ↦ Prod.mk m₁ m₂) (Prod.instWellFoundedRelation (sizeOfWFRel) (sizeOfWFRel))).rel y (PSigma.mk (Lean.Grind.CommRing.Mon.mult p m) (Lean.Grind.CommRing.Mon.mult p m)) → Ordering) → Ordering
but is expected to have type
  (p : Lean.Grind.CommRing.Power) → (m : Lean.Grind.CommRing.Mon) → (fun x ↦ (fun m₁ m₂ ↦ ((y : PSigma fun m₁ ↦ Lean.Grind.CommRing.Mon) → (invImage (fun x ↦ PSigma.casesOn x fun m₁ m₂ ↦ Prod.mk m₁ m₂) (Prod.instWellFoundedRelation (sizeOfWFRel) (sizeOfWFRel))).rel y (PSigma.mk m₁ m₂) → Ordering) → Ordering) (Lean.Grind.CommRing.Mon.mult p m) x) m → (fun x ↦ (fun m₁ m₂ ↦ ((y : PSigma fun m₁ ↦ Lean.Grind.CommRing.Mon) → (invImage (fun x ↦ PSigma.casesOn x fun m₁ m₂ ↦ Prod.mk m₁ m₂) (Prod.instWellFoundedRelation (sizeOfWFRel) (sizeOfWFRel))).rel y (PSigma.mk m₁ m₂) → Ordering) → Ordering) (Lean.Grind.CommRing.Mon.mult p m) x) (Lean.Grind.CommRing.Mon.mult p m)
theorem Lean.Grind.Linarith.Poly.combine._unary.eq_def : ∀ (_x : PSigma fun p₁ ↦ Lean.Grind.Linarith.Poly), Eq (Lean.Grind.Linarith.Poly.combine._unary _x) (PSigma.casesOn _x fun p₁ p₂ ↦ Lean.Grind.Linarith.Poly.combine.match_1.{1} (fun p₁ p₁ ↦ Lean.Grind.Linarith.Poly) p₁ p₂ (fun p₂ ↦ p₂) (fun p₂ ↦ p₂) fun a₁ x₁ p₁ a₂ x₂ p₂ ↦ cond (Nat.beq x₁ x₂) let a : Int := HAdd.hAdd a₁ a₂
cond (BEq.beq a (OfNat.ofNat 0)) (Lean.Grind.Linarith.Poly.combine._unary (PSigma.mk p₁ p₂)) (Lean.Grind.Linarith.Poly.add a x₁ (Lean.Grind.Linarith.Poly.combine._unary (PSigma.mk p₁ p₂))) (cond (Nat.blt x₂ x₁) (Lean.Grind.Linarith.Poly.add a₁ x₁ (Lean.Grind.Linarith.Poly.combine._unary (PSigma.mk p₁ (Lean.Grind.Linarith.Poly.add a₂ x₂ p₂)))) (Lean.Grind.Linarith.Poly.add a₂ x₂ (Lean.Grind.Linarith.Poly.combine._unary (PSigma.mk (Lean.Grind.Linarith.Poly.add a₁ x₁ p₁) p₂))))) := fun _x ↦ Eq.mpr (id (congrArg (fun x ↦ Eq (Lean.Grind.Linarith.Poly.combine._unary _x) (x _x)) (funext fun _x ↦ congrArg (PSigma.casesOn _x) (funext fun p₁ ↦ funext fun p₂ ↦ congrArg (Lean.Grind.Linarith.Poly.combine.match_1.{1} (fun p₁ p₁ ↦ Lean.Grind.Linarith.Poly) p₁ p₂ (fun p₂ ↦ wfParam p₂) fun p₂ ↦ wfParam p₂) (funext fun a₁ ↦ funext fun x₁ ↦ funext fun p₁ ↦ funext fun a₂ ↦ funext fun x₂ ↦ funext fun p₂ ↦ congrFun' (congrArg (cond (Nat.beq (wfParam x₁) (wfParam x₂))) (id (id (have_val_congr' (fun a ↦ cond (BEq.beq a (OfNat.ofNat 0)) (Lean.Grind.Linarith.Poly.combine._unary (PSigma.mk (wfParam p₁) (wfParam p₂))) (Lean.Grind.Linarith.Poly.add a (wfParam x₁) (Lean.Grind.Linarith.Poly.combine._unary (PSigma.mk (wfParam p₁) (wfParam p₂))))) (Eq.refl (wfParam (HAdd.hAdd (wfParam a₁) a₂))))))) (cond (Nat.blt (wfParam x₂) (wfParam x₁)) (Lean.Grind.Linarith.Poly.add (wfParam a₁) (wfParam x₁) (Lean.Grind.Linarith.Poly.combine._unary (PSigma.mk (wfParam p₁) (Lean.Grind.Linarith.Poly.add (wfParam a₂) (wfParam x₂) (wfParam p₂))))) (Lean.Grind.Linarith.Poly.add (wfParam a₂) (wfParam x₂) (Lean.Grind.Linarith.Poly.combine._unary (PSigma.mk (Lean.Grind.Linarith.Poly.add (wfParam a₁) (wfParam x₁) (wfParam p₁)) (wfParam p₂)))))))))) (Eq.trans (WellFounded.Nat.fix_eq (fun x ↦ PSigma.casesOn x fun p₁ p₂ ↦ HAdd.hAdd (SizeOf.sizeOf p₁) (SizeOf.sizeOf p₂)) (fun _x a ↦ PSigma.casesOn _x (fun p₁ p₂ a ↦ Lean.Grind.Linarith.Poly.combine.match_1.{1} (fun p₁ p₂ ↦ ((y : PSigma fun p₁ ↦ Lean.Grind.Linarith.Poly) → InvImage (fun x1 x2 ↦ LT.lt x1 x2) (fun x ↦ PSigma.casesOn x fun p₁ p₂ ↦ HAdd.hAdd (SizeOf.sizeOf p₁) (SizeOf.sizeOf p₂)) y (PSigma.mk p₁ p₂) → Lean.Grind.Linarith.Poly) → Lean.Grind.Linarith.Poly) p₁ p₂ (fun p₂ x ↦ p₂) (fun p₂ x ↦ p₂) (fun a₁ x₁ p₁ a₂ x₂ p₂ x ↦ cond (Nat.beq x₁ x₂) let a : Int := HAdd.hAdd a₁ a₂
cond (BEq.beq a (OfNat.ofNat 0)) (x (PSigma.mk p₁ p₂) (Lean.Grind.Linarith.Poly.combine._unary._proof_1 a₁ x₁ p₁ a₂ x₂ p₂)) (Lean.Grind.Linarith.Poly.add a x₁ (x (PSigma.mk p₁ p₂) (Lean.Grind.Linarith.Poly.combine._unary._proof_1 a₁ x₁ p₁ a₂ x₂ p₂))) (cond (Nat.blt x₂ x₁) (Lean.Grind.Linarith.Poly.add a₁ x₁ (x (PSigma.mk p₁ (Lean.Grind.Linarith.Poly.add a₂ x₂ p₂)) (Lean.Grind.Linarith.Poly.combine._unary._proof_2 a₁ x₁ p₁ a₂ x₂ p₂))) (Lean.Grind.Linarith.Poly.add a₂ x₂ (x (PSigma.mk (Lean.Grind.Linarith.Poly.add a₁ x₁ p₁) p₂) (Lean.Grind.Linarith.Poly.combine._unary._proof_3 a₁ x₁ p₁ a₂ x₂ p₂))))) a) a) _x) (Eq.mpr (id (congrFun' (congrArg (Eq) (Eq.trans (_private.Init.Grind.Ordered.Linarith.0.PSigma.casesOn._arg_pusher (PSigma fun p₁ ↦ Lean.Grind.Linarith.Poly) (fun _x ↦ Lean.Grind.Linarith.Poly) Lean.Grind.Linarith.Poly.combine._unary (fun _x y ↦ InvImage (fun x1 x2 ↦ LT.lt x1 x2) (fun x ↦ PSigma.casesOn x fun p₁ p₂ ↦ HAdd.hAdd (SizeOf.sizeOf p₁) (SizeOf.sizeOf p₂)) y _x) _x fun p₁ p₂ a ↦ Lean.Grind.Linarith.Poly.combine.match_1.{1} (fun p₁ p₂ ↦ ((y : PSigma fun p₁ ↦ Lean.Grind.Linarith.Poly) → InvImage (fun x1 x2 ↦ LT.lt x1 x2) (fun x ↦ PSigma.casesOn x fun p₁ p₂ ↦ HAdd.hAdd (SizeOf.sizeOf p₁) (SizeOf.sizeOf p₂)) y (PSigma.mk p₁ p₂) → Lean.Grind.Linarith.Poly) → Lean.Grind.Linarith.Poly) p₁ p₂ (fun p₂ x ↦ p₂) (fun p₂ x ↦ p₂) (fun a₁ x₁ p₁ a₂ x₂ p₂ x ↦ cond (Nat.beq x₁ x₂) let a : Int := HAdd.hAdd a₁ a₂
cond (BEq.beq a (OfNat.ofNat 0)) (x (PSigma.mk p₁ p₂) (Lean.Grind.Linarith.Poly.combine._unary._proof_1 a₁ x₁ p₁ a₂ x₂ p₂)) (Lean.Grind.Linarith.Poly.add a x₁ (x (PSigma.mk p₁ p₂) (Lean.Grind.Linarith.Poly.combine._unary._proof_1 a₁ x₁ p₁ a₂ x₂ p₂))) (cond (Nat.blt x₂ x₁) (Lean.Grind.Linarith.Poly.add a₁ x₁ (x (PSigma.mk p₁ (Lean.Grind.Linarith.Poly.add a₂ x₂ p₂)) (Lean.Grind.Linarith.Poly.combine._unary._proof_2 a₁ x₁ p₁ a₂ x₂ p₂))) (Lean.Grind.Linarith.Poly.add a₂ x₂ (x (PSigma.mk (Lean.Grind.Linarith.Poly.add a₁ x₁ p₁) p₂) (Lean.Grind.Linarith.Poly.combine._unary._proof_3 a₁ x₁ p₁ a₂ x₂ p₂))))) a) (congrFun' (congrArg (PSigma.rec) (funext fun fst ↦ funext fun snd ↦ _private.Init.Grind.Ordered.Linarith.0.Lean.Grind.Linarith.Poly.combine.match_1._arg_pusher.{1, 1, 1} (fun p₁ p₁ ↦ Lean.Grind.Linarith.Poly) (PSigma fun p₁ ↦ Lean.Grind.Linarith.Poly) (fun _x ↦ Lean.Grind.Linarith.Poly) Lean.Grind.Linarith.Poly.combine._unary (fun p₁ p₂ y ↦ InvImage (fun x1 x2 ↦ LT.lt x1 x2) (fun x ↦ PSigma.casesOn x fun p₁ p₂ ↦ HAdd.hAdd (SizeOf.sizeOf p₁) (SizeOf.sizeOf p₂)) y (PSigma.mk p₁ p₂)) fst snd (fun p₂ x ↦ p₂) (fun p₂ x ↦ p₂) fun a₁ x₁ p₁ a₂ x₂ p₂ x ↦ cond (Nat.beq x₁ x₂) let a : Int := HAdd.hAdd a₁ a₂
cond (BEq.beq a (OfNat.ofNat 0)) (x (PSigma.mk p₁ p₂) (Lean.Grind.Linarith.Poly.combine._unary._proof_1 a₁ x₁ p₁ a₂ x₂ p₂)) (Lean.Grind.Linarith.Poly.add a x₁ (x (PSigma.mk p₁ p₂) (Lean.Grind.Linarith.Poly.combine._unary._proof_1 a₁ x₁ p₁ a₂ x₂ p₂))) (cond (Nat.blt x₂ x₁) (Lean.Grind.Linarith.Poly.add a₁ x₁ (x (PSigma.mk p₁ (Lean.Grind.Linarith.Poly.add a₂ x₂ p₂)) (Lean.Grind.Linarith.Poly.combine._unary._proof_2 a₁ x₁ p₁ a₂ x₂ p₂))) (Lean.Grind.Linarith.Poly.add a₂ x₂ (x (PSigma.mk (Lean.Grind.Linarith.Poly.add a₁ x₁ p₁) p₂) (Lean.Grind.Linarith.Poly.combine._unary._proof_3 a₁ x₁ p₁ a₂ x₂ p₂)))))) _x))) (PSigma.rec (fun fst snd ↦ Lean.Grind.Linarith.Poly.combine.match_1.{1} (fun p₁ p₁ ↦ Lean.Grind.Linarith.Poly) fst snd (fun p₂ ↦ p₂) (fun p₂ ↦ p₂) fun a₁ x₁ p₁ a₂ x₂ p₂ ↦ cond (Nat.beq x₁ x₂) (cond (BEq.beq (HAdd.hAdd a₁ a₂) (OfNat.ofNat 0)) (Lean.Grind.Linarith.Poly.combine._unary (PSigma.mk p₁ p₂)) (Lean.Grind.Linarith.Poly.add (HAdd.hAdd a₁ a₂) x₁ (Lean.Grind.Linarith.Poly.combine._unary (PSigma.mk p₁ p₂)))) (cond (Nat.blt x₂ x₁) (Lean.Grind.Linarith.Poly.add a₁ x₁ (Lean.Grind.Linarith.Poly.combine._unary (PSigma.mk p₁ (Lean.Grind.Linarith.Poly.add a₂ x₂ p₂)))) (Lean.Grind.Linarith.Poly.add a₂ x₂ (Lean.Grind.Linarith.Poly.combine._unary (PSigma.mk (Lean.Grind.Linarith.Poly.add a₁ x₁ p₁) p₂))))) _x))) (Eq.refl (PSigma.rec (fun fst snd ↦ Lean.Grind.Linarith.Poly.combine.match_1.{1} (fun p₁ p₁ ↦ Lean.Grind.Linarith.Poly) fst snd (fun p₂ ↦ p₂) (fun p₂ ↦ p₂) fun a₁ x₁ p₁ a₂ x₂ p₂ ↦ cond (Nat.beq x₁ x₂) (cond (BEq.beq (HAdd.hAdd a₁ a₂) (OfNat.ofNat 0)) (Lean.Grind.Linarith.Poly.combine._unary (PSigma.mk p₁ p₂)) (Lean.Grind.Linarith.Poly.add (HAdd.hAdd a₁ a₂) x₁ (Lean.Grind.Linarith.Poly.combine._unary (PSigma.mk p₁ p₂)))) (cond (Nat.blt x₂ x₁) (Lean.Grind.Linarith.Poly.add a₁ x₁ (Lean.Grind.Linarith.Poly.combine._unary (PSigma.mk p₁ (Lean.Grind.Linarith.Poly.add a₂ x₂ p₂)))) (Lean.Grind.Linarith.Poly.add a₂ x₂ (Lean.Grind.Linarith.Poly.combine._unary (PSigma.mk (Lean.Grind.Linarith.Poly.add a₁ x₁ p₁) p₂))))) _x))))
has type
  (k : Int) → (v : Lean.Grind.Linarith.Var) → (p : Lean.Grind.Linarith.Poly) → (fun x ↦ (fun p₁ p₂ ↦ ((y : PSigma fun p₁ ↦ Lean.Grind.Linarith.Poly) → InvImage (fun x1 x2 ↦ LT.lt x1 x2) (fun x ↦ PSigma.casesOn x fun p₁ p₂ ↦ HAdd.hAdd (SizeOf.sizeOf p₁) (SizeOf.sizeOf p₂)) y (PSigma.mk p₁ p₂) → Lean.Grind.Linarith.Poly) → Lean.Grind.Linarith.Poly) (Lean.Grind.Linarith.Poly.add k v p) x) p → ((y : PSigma fun p₁ ↦ Lean.Grind.Linarith.Poly) → InvImage (fun x1 x2 ↦ LT.lt x1 x2) (fun x ↦ PSigma.casesOn x fun p₁ p₂ ↦ HAdd.hAdd (SizeOf.sizeOf p₁) (SizeOf.sizeOf p₂)) y (PSigma.mk (Lean.Grind.Linarith.Poly.add k v p) (Lean.Grind.Linarith.Poly.add k v p)) → Lean.Grind.Linarith.Poly) → Lean.Grind.Linarith.Poly
but is expected to have type
  (k : Int) → (v : Lean.Grind.Linarith.Var) → (p : Lean.Grind.Linarith.Poly) → (fun x ↦ (fun p₁ p₂ ↦ ((y : PSigma fun p₁ ↦ Lean.Grind.Linarith.Poly) → InvImage (fun x1 x2 ↦ LT.lt x1 x2) (fun x ↦ PSigma.casesOn x fun p₁ p₂ ↦ HAdd.hAdd (SizeOf.sizeOf p₁) (SizeOf.sizeOf p₂)) y (PSigma.mk p₁ p₂) → Lean.Grind.Linarith.Poly) → Lean.Grind.Linarith.Poly) (Lean.Grind.Linarith.Poly.add k v p) x) p → (fun x ↦ (fun p₁ p₂ ↦ ((y : PSigma fun p₁ ↦ Lean.Grind.Linarith.Poly) → InvImage (fun x1 x2 ↦ LT.lt x1 x2) (fun x ↦ PSigma.casesOn x fun p₁ p₂ ↦ HAdd.hAdd (SizeOf.sizeOf p₁) (SizeOf.sizeOf p₂)) y (PSigma.mk p₁ p₂) → Lean.Grind.Linarith.Poly) → Lean.Grind.Linarith.Poly) (Lean.Grind.Linarith.Poly.add k v p) x) (Lean.Grind.Linarith.Poly.add k v p)
theorem ENNReal.instLinearOrder._proof_2 : autoParam.{0} (∀ (a : ENNReal), ∀ (b : ENNReal), Eq (Min.min a b) (ite (LE.le a b) a b)) LinearOrder.min_def._autoParam := Lattice.toLinearOrder._proof_1 (WithTop.{0} NNReal)
has type
  (h : NNReal) → Decidable (LE.le (WithTop.some h) (WithTop.some h))
but is expected to have type
  (val : NNReal) → (fun x ↦ (fun x x ↦ Decidable (LE.le x x)) (Option.some h) x) (Option.some val)
theorem ENNReal.instLinearOrder._proof_3 : autoParam.{0} (∀ (a : ENNReal), ∀ (b : ENNReal), Eq (Max.max a b) (ite (LE.le a b) b a)) LinearOrder.max_def._autoParam := Lattice.toLinearOrder._proof_2 (WithTop.{0} NNReal)
has type
  (h : NNReal) → Decidable (LE.le (WithTop.some h) (WithTop.some h))
but is expected to have type
  (val : NNReal) → (fun x ↦ (fun x x ↦ Decidable (LE.le x x)) (Option.some h) x) (Option.some val)
theorem ENNReal.instLinearOrder._proof_4 : autoParam.{0} (∀ (a : ENNReal), ∀ (b : ENNReal), Eq (Ord.compare a b) (compareOfLessAndEq a b)) LinearOrder.compare_eq_compareOfLessAndEq._autoParam := Lattice.toLinearOrder._proof_3 (WithTop.{0} NNReal)
has type
  (h : NNReal) → (fun x ↦ Decidable (Eq (Option.some h) (Option.some h))) ((fun a b ↦ LinearOrder.toDecidableEq a b) h h)
but is expected to have type
  (val : NNReal) → (fun x ↦ (fun b ↦ Decidable (Eq (Option.some h) b)) x) (Option.some val)
theorem Std.DTreeMap.Internal.Impl.balanced_glue.{u, v} : ∀ {α : Type u}, ∀ {β : α → Type v}, ∀ {l : Std.DTreeMap.Internal.Impl β}, ∀ {r : Std.DTreeMap.Internal.Impl β}, ∀ {hl : Std.DTreeMap.Internal.Impl.Balanced l}, ∀ {hr : Std.DTreeMap.Internal.Impl.Balanced r}, ∀ {hlr : Std.DTreeMap.Internal.Impl.BalancedAtRoot (Std.DTreeMap.Internal.Impl.size l) (Std.DTreeMap.Internal.Impl.size r)}, Std.DTreeMap.Internal.Impl.Balanced (Std.DTreeMap.Internal.Impl.glue l r hl hr hlr) := fun {α β l r hl hr hlr} ↦ Eq.mpr (id (congrArg (Std.DTreeMap.Internal.Impl.Balanced) (congrArg (Std.DTreeMap.Internal.Impl.minView.match_3 r (fun l hl hlr ↦ Std.DTreeMap.Internal.Impl β) l hl hlr fun hl hlr ↦ r) (funext fun sz ↦ funext fun k ↦ funext fun v ↦ funext fun l' ↦ funext fun r' ↦ funext fun hl ↦ funext fun hlr ↦ congrArg (Std.DTreeMap.Internal.Impl.glue.match_1 sz k v l' r' (fun r hr hlr ↦ Std.DTreeMap.Internal.Impl β) r hr hlr fun hr hlr ↦ l) (funext fun sz' ↦ funext fun k' ↦ funext fun v' ↦ funext fun l'' ↦ funext fun r'' ↦ funext fun hr ↦ funext fun hlr ↦ ite_congr (Eq.refl (LT.lt sz sz')) (fun a ↦ Eq.refl (Std.DTreeMap.Internal.Impl.balanceLErase (Std.DTreeMap.Internal.Impl.View.k (Std.DTreeMap.Internal.Impl.minView k' v' l'' r'' (Std.DTreeMap.Internal.Impl.glue._proof_4 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_6 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_8 sz k v l' r' hl sz' k' v' l'' r'' hr))) (Std.DTreeMap.Internal.Impl.View.v (Std.DTreeMap.Internal.Impl.minView k' v' l'' r'' (Std.DTreeMap.Internal.Impl.glue._proof_4 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_6 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_8 sz k v l' r' hl sz' k' v' l'' r'' hr))) (Std.DTreeMap.Internal.Impl.inner sz k v l' r') (Std.DTreeMap.Internal.Impl.Tree.impl (Std.DTreeMap.Internal.Impl.minView k' v' l'' r'' (Std.DTreeMap.Internal.Impl.glue._proof_4 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_6 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_8 sz k v l' r' hl sz' k' v' l'' r'' hr)).tree) hl (Std.DTreeMap.Internal.Impl.glue._proof_10 sz k v l' r' hl sz' k' v' l'' r'' hr (Std.DTreeMap.Internal.Impl.Tree.impl (Std.DTreeMap.Internal.Impl.minView k' v' l'' r'' (Std.DTreeMap.Internal.Impl.glue._proof_4 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_6 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_8 sz k v l' r' hl sz' k' v' l'' r'' hr)).tree) (Std.DTreeMap.Internal.Impl.Tree.balanced_impl (Std.DTreeMap.Internal.Impl.minView k' v' l'' r'' (Std.DTreeMap.Internal.Impl.glue._proof_4 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_6 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_8 sz k v l' r' hl sz' k' v' l'' r'' hr)).tree)) (Std.DTreeMap.Internal.Impl.glue._proof_12 sz k v l' r' sz' k' v' l'' r'' hr hlr (Std.DTreeMap.Internal.Impl.Tree.impl (Std.DTreeMap.Internal.Impl.minView k' v' l'' r'' (Std.DTreeMap.Internal.Impl.glue._proof_4 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_6 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_8 sz k v l' r' hl sz' k' v' l'' r'' hr)).tree) (Std.DTreeMap.Internal.Impl.Tree.size_impl (Std.DTreeMap.Internal.Impl.minView k' v' l'' r'' (Std.DTreeMap.Internal.Impl.glue._proof_4 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_6 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_8 sz k v l' r' hl sz' k' v' l'' r'' hr)).tree)))) fun a ↦ Eq.refl (Std.DTreeMap.Internal.Impl.balanceRErase (Std.DTreeMap.Internal.Impl.View.k (Std.DTreeMap.Internal.Impl.maxView k v l' r' (Std.DTreeMap.Internal.Impl.glue._proof_14 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_16 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_18 sz k v l' r' hl sz' k' v' l'' r'' hr))) (Std.DTreeMap.Internal.Impl.View.v (Std.DTreeMap.Internal.Impl.maxView k v l' r' (Std.DTreeMap.Internal.Impl.glue._proof_14 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_16 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_18 sz k v l' r' hl sz' k' v' l'' r'' hr))) (Std.DTreeMap.Internal.Impl.Tree.impl (Std.DTreeMap.Internal.Impl.maxView k v l' r' (Std.DTreeMap.Internal.Impl.glue._proof_14 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_16 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_18 sz k v l' r' hl sz' k' v' l'' r'' hr)).tree) (Std.DTreeMap.Internal.Impl.inner sz' k' v' l'' r'') (Std.DTreeMap.Internal.Impl.glue._proof_10 sz k v l' r' hl sz' k' v' l'' r'' hr (Std.DTreeMap.Internal.Impl.Tree.impl (Std.DTreeMap.Internal.Impl.maxView k v l' r' (Std.DTreeMap.Internal.Impl.glue._proof_14 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_16 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_18 sz k v l' r' hl sz' k' v' l'' r'' hr)).tree) (Std.DTreeMap.Internal.Impl.Tree.balanced_impl (Std.DTreeMap.Internal.Impl.maxView k v l' r' (Std.DTreeMap.Internal.Impl.glue._proof_14 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_16 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_18 sz k v l' r' hl sz' k' v' l'' r'' hr)).tree)) hr (Std.DTreeMap.Internal.Impl.glue._proof_20 sz k v l' r' hl sz' k' v' l'' r'' hlr (Std.DTreeMap.Internal.Impl.Tree.impl (Std.DTreeMap.Internal.Impl.maxView k v l' r' (Std.DTreeMap.Internal.Impl.glue._proof_14 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_16 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_18 sz k v l' r' hl sz' k' v' l'' r'' hr)).tree) (Std.DTreeMap.Internal.Impl.Tree.size_impl (Std.DTreeMap.Internal.Impl.maxView k v l' r' (Std.DTreeMap.Internal.Impl.glue._proof_14 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_16 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_18 sz k v l' r' hl sz' k' v' l'' r'' hr)).tree)))))))) (_private.Std.Data.DTreeMap.Internal.Operations.0.Std.DTreeMap.Internal.Impl.minView.match_3.splitter r (fun l hl hlr ↦ Eq l l → HEq hl hl → HEq hlr hlr → Std.DTreeMap.Internal.Impl.Balanced (Std.DTreeMap.Internal.Impl.minView.match_3 r (fun l hl hlr ↦ Std.DTreeMap.Internal.Impl β) l hl hlr (fun hl hlr ↦ r) fun sz k v l' r' hl hlr ↦ Std.DTreeMap.Internal.Impl.glue.match_1 sz k v l' r' (fun r hr hlr ↦ Std.DTreeMap.Internal.Impl β) r hr hlr (fun hr hlr ↦ l) fun sz' k' v' l'' r'' hr hlr ↦ ite (LT.lt sz sz') (Std.DTreeMap.Internal.Impl.balanceLErase (Std.DTreeMap.Internal.Impl.View.k (Std.DTreeMap.Internal.Impl.minView k' v' l'' r'' (Std.DTreeMap.Internal.Impl.glue._proof_4 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_6 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_8 sz k v l' r' hl sz' k' v' l'' r'' hr))) (Std.DTreeMap.Internal.Impl.View.v (Std.DTreeMap.Internal.Impl.minView k' v' l'' r'' (Std.DTreeMap.Internal.Impl.glue._proof_4 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_6 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_8 sz k v l' r' hl sz' k' v' l'' r'' hr))) (Std.DTreeMap.Internal.Impl.inner sz k v l' r') (Std.DTreeMap.Internal.Impl.Tree.impl (Std.DTreeMap.Internal.Impl.minView k' v' l'' r'' (Std.DTreeMap.Internal.Impl.glue._proof_4 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_6 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_8 sz k v l' r' hl sz' k' v' l'' r'' hr)).tree) hl (Std.DTreeMap.Internal.Impl.glue._proof_10 sz k v l' r' hl sz' k' v' l'' r'' hr (Std.DTreeMap.Internal.Impl.Tree.impl (Std.DTreeMap.Internal.Impl.minView k' v' l'' r'' (Std.DTreeMap.Internal.Impl.glue._proof_4 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_6 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_8 sz k v l' r' hl sz' k' v' l'' r'' hr)).tree) (Std.DTreeMap.Internal.Impl.Tree.balanced_impl (Std.DTreeMap.Internal.Impl.minView k' v' l'' r'' (Std.DTreeMap.Internal.Impl.glue._proof_4 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_6 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_8 sz k v l' r' hl sz' k' v' l'' r'' hr)).tree)) (Std.DTreeMap.Internal.Impl.glue._proof_12 sz k v l' r' sz' k' v' l'' r'' hr hlr (Std.DTreeMap.Internal.Impl.Tree.impl (Std.DTreeMap.Internal.Impl.minView k' v' l'' r'' (Std.DTreeMap.Internal.Impl.glue._proof_4 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_6 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_8 sz k v l' r' hl sz' k' v' l'' r'' hr)).tree) (Std.DTreeMap.Internal.Impl.Tree.size_impl (Std.DTreeMap.Internal.Impl.minView k' v' l'' r'' (Std.DTreeMap.Internal.Impl.glue._proof_4 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_6 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_8 sz k v l' r' hl sz' k' v' l'' r'' hr)).tree))) (Std.DTreeMap.Internal.Impl.balanceRErase (Std.DTreeMap.Internal.Impl.View.k (Std.DTreeMap.Internal.Impl.maxView k v l' r' (Std.DTreeMap.Internal.Impl.glue._proof_14 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_16 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_18 sz k v l' r' hl sz' k' v' l'' r'' hr))) (Std.DTreeMap.Internal.Impl.View.v (Std.DTreeMap.Internal.Impl.maxView k v l' r' (Std.DTreeMap.Internal.Impl.glue._proof_14 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_16 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_18 sz k v l' r' hl sz' k' v' l'' r'' hr))) (Std.DTreeMap.Internal.Impl.Tree.impl (Std.DTreeMap.Internal.Impl.maxView k v l' r' (Std.DTreeMap.Internal.Impl.glue._proof_14 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_16 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_18 sz k v l' r' hl sz' k' v' l'' r'' hr)).tree) (Std.DTreeMap.Internal.Impl.inner sz' k' v' l'' r'') (Std.DTreeMap.Internal.Impl.glue._proof_10 sz k v l' r' hl sz' k' v' l'' r'' hr (Std.DTreeMap.Internal.Impl.Tree.impl (Std.DTreeMap.Internal.Impl.maxView k v l' r' (Std.DTreeMap.Internal.Impl.glue._proof_14 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_16 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_18 sz k v l' r' hl sz' k' v' l'' r'' hr)).tree) (Std.DTreeMap.Internal.Impl.Tree.balanced_impl (Std.DTreeMap.Internal.Impl.maxView k v l' r' (Std.DTreeMap.Internal.Impl.glue._proof_14 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_16 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_18 sz k v l' r' hl sz' k' v' l'' r'' hr)).tree)) hr (Std.DTreeMap.Internal.Impl.glue._proof_20 sz k v l' r' hl sz' k' v' l'' r'' hlr (Std.DTreeMap.Internal.Impl.Tree.impl (Std.DTreeMap.Internal.Impl.maxView k v l' r' (Std.DTreeMap.Internal.Impl.glue._proof_14 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_16 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_18 sz k v l' r' hl sz' k' v' l'' r'' hr)).tree) (Std.DTreeMap.Internal.Impl.Tree.size_impl (Std.DTreeMap.Internal.Impl.maxView k v l' r' (Std.DTreeMap.Internal.Impl.glue._proof_14 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_16 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_18 sz k v l' r' hl sz' k' v' l'' r'' hr)).tree))))) l hl hlr (fun hl hlr h ↦ Eq.ndrec (fun {hl hlr} h ↦ Eq.ndrec (fun h ↦ Eq.ndrec (id hr) (Eq.symm (eq_of_heq h))) (Eq.symm (eq_of_heq h))) (Eq.symm h) hl hlr) (fun size k' v' l' r' hl hlr h ↦ Eq.ndrec (fun {hl hlr} h ↦ Eq.ndrec (fun h ↦ Eq.ndrec (id (_private.Std.Data.DTreeMap.Internal.Operations.0.Std.DTreeMap.Internal.Impl.glue.match_1.splitter size k' v' l' r' (fun r hr hlr ↦ Eq r r → HEq hr hr → HEq hlr hlr → Std.DTreeMap.Internal.Impl.Balanced (Std.DTreeMap.Internal.Impl.glue.match_1 size k' v' l' r' (fun r hr hlr ↦ Std.DTreeMap.Internal.Impl β) r hr hlr (fun hr hlr ↦ Std.DTreeMap.Internal.Impl.inner size k' v' l' r') fun sz' k' v' l'' r'' hr hlr ↦ ite (LT.lt size sz') (Std.DTreeMap.Internal.Impl.balanceLErase (Std.DTreeMap.Internal.Impl.View.k (Std.DTreeMap.Internal.Impl.minView k' v' l'' r'' (Std.DTreeMap.Internal.Impl.glue._proof_4 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_6 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_8 size k' v' l' r' hl sz' k' v' l'' r'' hr))) (Std.DTreeMap.Internal.Impl.View.v (Std.DTreeMap.Internal.Impl.minView k' v' l'' r'' (Std.DTreeMap.Internal.Impl.glue._proof_4 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_6 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_8 size k' v' l' r' hl sz' k' v' l'' r'' hr))) (Std.DTreeMap.Internal.Impl.inner size k' v' l' r') (Std.DTreeMap.Internal.Impl.Tree.impl (Std.DTreeMap.Internal.Impl.minView k' v' l'' r'' (Std.DTreeMap.Internal.Impl.glue._proof_4 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_6 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_8 size k' v' l' r' hl sz' k' v' l'' r'' hr)).tree) hl (Std.DTreeMap.Internal.Impl.glue._proof_10 size k' v' l' r' hl sz' k' v' l'' r'' hr (Std.DTreeMap.Internal.Impl.Tree.impl (Std.DTreeMap.Internal.Impl.minView k' v' l'' r'' (Std.DTreeMap.Internal.Impl.glue._proof_4 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_6 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_8 size k' v' l' r' hl sz' k' v' l'' r'' hr)).tree) (Std.DTreeMap.Internal.Impl.Tree.balanced_impl (Std.DTreeMap.Internal.Impl.minView k' v' l'' r'' (Std.DTreeMap.Internal.Impl.glue._proof_4 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_6 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_8 size k' v' l' r' hl sz' k' v' l'' r'' hr)).tree)) (Std.DTreeMap.Internal.Impl.glue._proof_12 size k' v' l' r' sz' k' v' l'' r'' hr hlr (Std.DTreeMap.Internal.Impl.Tree.impl (Std.DTreeMap.Internal.Impl.minView k' v' l'' r'' (Std.DTreeMap.Internal.Impl.glue._proof_4 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_6 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_8 size k' v' l' r' hl sz' k' v' l'' r'' hr)).tree) (Std.DTreeMap.Internal.Impl.Tree.size_impl (Std.DTreeMap.Internal.Impl.minView k' v' l'' r'' (Std.DTreeMap.Internal.Impl.glue._proof_4 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_6 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_8 size k' v' l' r' hl sz' k' v' l'' r'' hr)).tree))) (Std.DTreeMap.Internal.Impl.balanceRErase (Std.DTreeMap.Internal.Impl.View.k (Std.DTreeMap.Internal.Impl.maxView k' v' l' r' (Std.DTreeMap.Internal.Impl.glue._proof_14 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_16 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_18 size k' v' l' r' hl sz' k' v' l'' r'' hr))) (Std.DTreeMap.Internal.Impl.View.v (Std.DTreeMap.Internal.Impl.maxView k' v' l' r' (Std.DTreeMap.Internal.Impl.glue._proof_14 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_16 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_18 size k' v' l' r' hl sz' k' v' l'' r'' hr))) (Std.DTreeMap.Internal.Impl.Tree.impl (Std.DTreeMap.Internal.Impl.maxView k' v' l' r' (Std.DTreeMap.Internal.Impl.glue._proof_14 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_16 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_18 size k' v' l' r' hl sz' k' v' l'' r'' hr)).tree) (Std.DTreeMap.Internal.Impl.inner sz' k' v' l'' r'') (Std.DTreeMap.Internal.Impl.glue._proof_10 size k' v' l' r' hl sz' k' v' l'' r'' hr (Std.DTreeMap.Internal.Impl.Tree.impl (Std.DTreeMap.Internal.Impl.maxView k' v' l' r' (Std.DTreeMap.Internal.Impl.glue._proof_14 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_16 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_18 size k' v' l' r' hl sz' k' v' l'' r'' hr)).tree) (Std.DTreeMap.Internal.Impl.Tree.balanced_impl (Std.DTreeMap.Internal.Impl.maxView k' v' l' r' (Std.DTreeMap.Internal.Impl.glue._proof_14 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_16 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_18 size k' v' l' r' hl sz' k' v' l'' r'' hr)).tree)) hr (Std.DTreeMap.Internal.Impl.glue._proof_20 size k' v' l' r' hl sz' k' v' l'' r'' hlr (Std.DTreeMap.Internal.Impl.Tree.impl (Std.DTreeMap.Internal.Impl.maxView k' v' l' r' (Std.DTreeMap.Internal.Impl.glue._proof_14 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_16 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_18 size k' v' l' r' hl sz' k' v' l'' r'' hr)).tree) (Std.DTreeMap.Internal.Impl.Tree.size_impl (Std.DTreeMap.Internal.Impl.maxView k' v' l' r' (Std.DTreeMap.Internal.Impl.glue._proof_14 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_16 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_18 size k' v' l' r' hl sz' k' v' l'' r'' hr)).tree))))) r hr hlr (fun hr hlr h ↦ Eq.ndrec (fun {hr} hlr hlr h ↦ Eq.ndrec (fun h ↦ Eq.ndrec (id (Eq.mpr (id (Std.DTreeMap.Internal.Impl.balanced_inner_iff._simp_1)) (And.casesOn (Eq.mp (Std.DTreeMap.Internal.Impl.balanced_inner_iff._simp_1) hl) (fun left right h ↦ And.casesOn right (fun left right h ↦ And.casesOn right (fun left right h ↦ And.intro left (And.intro left (And.intro left right))) (Eq.refl right)) (Eq.refl right)) (Eq.refl (Eq.mp (Std.DTreeMap.Internal.Impl.balanced_inner_iff._simp_1) hl))))) (Eq.symm (eq_of_heq h))) (Eq.symm (eq_of_heq h))) (Eq.symm h) hr hlr hlr) (fun sz' k' v' l'' r'' hr hlr h ↦ Eq.ndrec (fun {hr} hlr hlr h ↦ Eq.ndrec (fun h ↦ Eq.ndrec (id (Decidable.casesOn (Nat.decLt size sz') (fun h ↦ Eq.mpr (id (congrArg (Std.DTreeMap.Internal.Impl.Balanced) (if_neg h))) (of_eq_true (Std.DTreeMap.Internal.Impl.balanced_balanceRErase._simp_1 (Std.DTreeMap.Internal.Impl.glue._proof_10 size k' v' l' r' hl sz' k' v' l'' r'' hr (Std.DTreeMap.Internal.Impl.Tree.impl (Std.DTreeMap.Internal.Impl.maxView k' v' l' r' (Std.DTreeMap.Internal.Impl.glue._proof_14 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_16 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_18 size k' v' l' r' hl sz' k' v' l'' r'' hr)).tree) (Std.DTreeMap.Internal.Impl.Tree.balanced_impl (Std.DTreeMap.Internal.Impl.maxView k' v' l' r' (Std.DTreeMap.Internal.Impl.glue._proof_14 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_16 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_18 size k' v' l' r' hl sz' k' v' l'' r'' hr)).tree)) hr (Std.DTreeMap.Internal.Impl.glue._proof_20 size k' v' l' r' hl sz' k' v' l'' r'' hlr (Std.DTreeMap.Internal.Impl.Tree.impl (Std.DTreeMap.Internal.Impl.maxView k' v' l' r' (Std.DTreeMap.Internal.Impl.glue._proof_14 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_16 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_18 size k' v' l' r' hl sz' k' v' l'' r'' hr)).tree) (Std.DTreeMap.Internal.Impl.Tree.size_impl (Std.DTreeMap.Internal.Impl.maxView k' v' l' r' (Std.DTreeMap.Internal.Impl.glue._proof_14 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_16 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_18 size k' v' l' r' hl sz' k' v' l'' r'' hr)).tree))))) fun h ↦ Eq.mpr (id (congrArg (Std.DTreeMap.Internal.Impl.Balanced) (if_pos h))) (of_eq_true (Std.DTreeMap.Internal.Impl.balanced_balanceLErase._simp_1 hl (Std.DTreeMap.Internal.Impl.glue._proof_10 size k' v' l' r' hl sz' k' v' l'' r'' hr (Std.DTreeMap.Internal.Impl.Tree.impl (Std.DTreeMap.Internal.Impl.minView k' v' l'' r'' (Std.DTreeMap.Internal.Impl.glue._proof_4 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_6 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_8 size k' v' l' r' hl sz' k' v' l'' r'' hr)).tree) (Std.DTreeMap.Internal.Impl.Tree.balanced_impl (Std.DTreeMap.Internal.Impl.minView k' v' l'' r'' (Std.DTreeMap.Internal.Impl.glue._proof_4 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_6 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_8 size k' v' l' r' hl sz' k' v' l'' r'' hr)).tree)) (Std.DTreeMap.Internal.Impl.glue._proof_12 size k' v' l' r' sz' k' v' l'' r'' hr hlr (Std.DTreeMap.Internal.Impl.Tree.impl (Std.DTreeMap.Internal.Impl.minView k' v' l'' r'' (Std.DTreeMap.Internal.Impl.glue._proof_4 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_6 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_8 size k' v' l' r' hl sz' k' v' l'' r'' hr)).tree) (Std.DTreeMap.Internal.Impl.Tree.size_impl (Std.DTreeMap.Internal.Impl.minView k' v' l'' r'' (Std.DTreeMap.Internal.Impl.glue._proof_4 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_6 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_8 size k' v' l' r' hl sz' k' v' l'' r'' hr)).tree)))))) (Eq.symm (eq_of_heq h))) (Eq.symm (eq_of_heq h))) (Eq.symm h) hr hlr hlr) (Eq.refl r) (HEq.refl hr) (HEq.refl hlr))) (Eq.symm (eq_of_heq h))) (Eq.symm (eq_of_heq h))) (Eq.symm h) hl hlr) (Eq.refl l) (HEq.refl hl) (HEq.refl hlr))
has type
  (size : Nat) → (k : α) → (v : β k) → (l : Std.DTreeMap.Internal.Impl β) → (r : Std.DTreeMap.Internal.Impl β) → (fun x ↦ (hlb : Std.DTreeMap.Internal.Impl.Balanced (Std.DTreeMap.Internal.Impl.inner sz k v x r')) → (hlr : Std.DTreeMap.Internal.Impl.BalanceLErasePrecond (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner sz k v x r')) (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k v l r))) → (fun ll lr hlb hlr ↦ Std.DTreeMap.Internal.Impl β) x r' hlb hlr) l → (fun x ↦ (hlb : Std.DTreeMap.Internal.Impl.Balanced (Std.DTreeMap.Internal.Impl.inner sz k v x r')) → (hlr : Std.DTreeMap.Internal.Impl.BalanceLErasePrecond (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner sz k v x r')) (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k v l r))) → (fun ll lr hlb hlr ↦ Std.DTreeMap.Internal.Impl β) x r' hlb hlr) r → (hlb : Std.DTreeMap.Internal.Impl.Balanced (Std.DTreeMap.Internal.Impl.inner sz k v (Std.DTreeMap.Internal.Impl.inner size k v l r) r')) → (hlr : Std.DTreeMap.Internal.Impl.BalanceLErasePrecond (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner sz k v (Std.DTreeMap.Internal.Impl.inner size k v l r) r')) (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k v l r))) → (fun ll lr hlb hlr ↦ Std.DTreeMap.Internal.Impl β) (Std.DTreeMap.Internal.Impl.inner size k v l r) r' hlb hlr
but is expected to have type
  (size : Nat) → (k : α) → (v : β k) → (l : Std.DTreeMap.Internal.Impl β) → (r : Std.DTreeMap.Internal.Impl β) → (fun x ↦ (hlb : Std.DTreeMap.Internal.Impl.Balanced (Std.DTreeMap.Internal.Impl.inner sz k v x r')) → (hlr : Std.DTreeMap.Internal.Impl.BalanceLErasePrecond (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner sz k v x r')) (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k v l r))) → (fun ll lr hlb hlr ↦ Std.DTreeMap.Internal.Impl β) x r' hlb hlr) l → (fun x ↦ (hlb : Std.DTreeMap.Internal.Impl.Balanced (Std.DTreeMap.Internal.Impl.inner sz k v x r')) → (hlr : Std.DTreeMap.Internal.Impl.BalanceLErasePrecond (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner sz k v x r')) (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k v l r))) → (fun ll lr hlb hlr ↦ Std.DTreeMap.Internal.Impl β) x r' hlb hlr) r → (fun x ↦ (hlb : Std.DTreeMap.Internal.Impl.Balanced (Std.DTreeMap.Internal.Impl.inner sz k v x r')) → (hlr : Std.DTreeMap.Internal.Impl.BalanceLErasePrecond (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner sz k v x r')) (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k v l r))) → (fun ll lr hlb hlr ↦ Std.DTreeMap.Internal.Impl β) x r' hlb hlr) (Std.DTreeMap.Internal.Impl.inner size k v l r)
theorem Std.DTreeMap.Internal.Impl.size_glue.{u, v} : ∀ {α : Type u}, ∀ {β : α → Type v}, ∀ {l : Std.DTreeMap.Internal.Impl β}, ∀ {r : Std.DTreeMap.Internal.Impl β}, ∀ {hl : Std.DTreeMap.Internal.Impl.Balanced l}, ∀ {hr : Std.DTreeMap.Internal.Impl.Balanced r}, ∀ {hlr : Std.DTreeMap.Internal.Impl.BalancedAtRoot (Std.DTreeMap.Internal.Impl.size l) (Std.DTreeMap.Internal.Impl.size r)}, Eq (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.glue l r hl hr hlr)) (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size l) (Std.DTreeMap.Internal.Impl.size r)) := fun {α β l r hl hr hlr} ↦ Eq.mpr (id (congrFun' (congrArg (Eq) (congrArg (Std.DTreeMap.Internal.Impl.size) (congrArg (Std.DTreeMap.Internal.Impl.minView.match_3 r (fun l hl hlr ↦ Std.DTreeMap.Internal.Impl β) l hl hlr fun hl hlr ↦ r) (funext fun sz ↦ funext fun k ↦ funext fun v ↦ funext fun l' ↦ funext fun r' ↦ funext fun hl ↦ funext fun hlr ↦ congrArg (Std.DTreeMap.Internal.Impl.glue.match_1 sz k v l' r' (fun r hr hlr ↦ Std.DTreeMap.Internal.Impl β) r hr hlr fun hr hlr ↦ l) (funext fun sz' ↦ funext fun k' ↦ funext fun v' ↦ funext fun l'' ↦ funext fun r'' ↦ funext fun hr ↦ funext fun hlr ↦ ite_congr (Eq.refl (LT.lt sz sz')) (fun a ↦ Eq.refl (Std.DTreeMap.Internal.Impl.balanceLErase (Std.DTreeMap.Internal.Impl.View.k (Std.DTreeMap.Internal.Impl.minView k' v' l'' r'' (Std.DTreeMap.Internal.Impl.glue._proof_4 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_6 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_8 sz k v l' r' hl sz' k' v' l'' r'' hr))) (Std.DTreeMap.Internal.Impl.View.v (Std.DTreeMap.Internal.Impl.minView k' v' l'' r'' (Std.DTreeMap.Internal.Impl.glue._proof_4 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_6 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_8 sz k v l' r' hl sz' k' v' l'' r'' hr))) (Std.DTreeMap.Internal.Impl.inner sz k v l' r') (Std.DTreeMap.Internal.Impl.Tree.impl (Std.DTreeMap.Internal.Impl.minView k' v' l'' r'' (Std.DTreeMap.Internal.Impl.glue._proof_4 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_6 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_8 sz k v l' r' hl sz' k' v' l'' r'' hr)).tree) hl (Std.DTreeMap.Internal.Impl.glue._proof_10 sz k v l' r' hl sz' k' v' l'' r'' hr (Std.DTreeMap.Internal.Impl.Tree.impl (Std.DTreeMap.Internal.Impl.minView k' v' l'' r'' (Std.DTreeMap.Internal.Impl.glue._proof_4 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_6 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_8 sz k v l' r' hl sz' k' v' l'' r'' hr)).tree) (Std.DTreeMap.Internal.Impl.Tree.balanced_impl (Std.DTreeMap.Internal.Impl.minView k' v' l'' r'' (Std.DTreeMap.Internal.Impl.glue._proof_4 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_6 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_8 sz k v l' r' hl sz' k' v' l'' r'' hr)).tree)) (Std.DTreeMap.Internal.Impl.glue._proof_12 sz k v l' r' sz' k' v' l'' r'' hr hlr (Std.DTreeMap.Internal.Impl.Tree.impl (Std.DTreeMap.Internal.Impl.minView k' v' l'' r'' (Std.DTreeMap.Internal.Impl.glue._proof_4 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_6 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_8 sz k v l' r' hl sz' k' v' l'' r'' hr)).tree) (Std.DTreeMap.Internal.Impl.Tree.size_impl (Std.DTreeMap.Internal.Impl.minView k' v' l'' r'' (Std.DTreeMap.Internal.Impl.glue._proof_4 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_6 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_8 sz k v l' r' hl sz' k' v' l'' r'' hr)).tree)))) fun a ↦ Eq.refl (Std.DTreeMap.Internal.Impl.balanceRErase (Std.DTreeMap.Internal.Impl.View.k (Std.DTreeMap.Internal.Impl.maxView k v l' r' (Std.DTreeMap.Internal.Impl.glue._proof_14 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_16 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_18 sz k v l' r' hl sz' k' v' l'' r'' hr))) (Std.DTreeMap.Internal.Impl.View.v (Std.DTreeMap.Internal.Impl.maxView k v l' r' (Std.DTreeMap.Internal.Impl.glue._proof_14 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_16 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_18 sz k v l' r' hl sz' k' v' l'' r'' hr))) (Std.DTreeMap.Internal.Impl.Tree.impl (Std.DTreeMap.Internal.Impl.maxView k v l' r' (Std.DTreeMap.Internal.Impl.glue._proof_14 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_16 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_18 sz k v l' r' hl sz' k' v' l'' r'' hr)).tree) (Std.DTreeMap.Internal.Impl.inner sz' k' v' l'' r'') (Std.DTreeMap.Internal.Impl.glue._proof_10 sz k v l' r' hl sz' k' v' l'' r'' hr (Std.DTreeMap.Internal.Impl.Tree.impl (Std.DTreeMap.Internal.Impl.maxView k v l' r' (Std.DTreeMap.Internal.Impl.glue._proof_14 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_16 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_18 sz k v l' r' hl sz' k' v' l'' r'' hr)).tree) (Std.DTreeMap.Internal.Impl.Tree.balanced_impl (Std.DTreeMap.Internal.Impl.maxView k v l' r' (Std.DTreeMap.Internal.Impl.glue._proof_14 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_16 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_18 sz k v l' r' hl sz' k' v' l'' r'' hr)).tree)) hr (Std.DTreeMap.Internal.Impl.glue._proof_20 sz k v l' r' hl sz' k' v' l'' r'' hlr (Std.DTreeMap.Internal.Impl.Tree.impl (Std.DTreeMap.Internal.Impl.maxView k v l' r' (Std.DTreeMap.Internal.Impl.glue._proof_14 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_16 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_18 sz k v l' r' hl sz' k' v' l'' r'' hr)).tree) (Std.DTreeMap.Internal.Impl.Tree.size_impl (Std.DTreeMap.Internal.Impl.maxView k v l' r' (Std.DTreeMap.Internal.Impl.glue._proof_14 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_16 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_18 sz k v l' r' hl sz' k' v' l'' r'' hr)).tree)))))))) (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size l) (Std.DTreeMap.Internal.Impl.size r)))) (_private.Std.Data.DTreeMap.Internal.Operations.0.Std.DTreeMap.Internal.Impl.minView.match_3.splitter r (fun l hl hlr ↦ Eq l l → HEq hl hl → HEq hlr hlr → Eq (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.minView.match_3 r (fun l hl hlr ↦ Std.DTreeMap.Internal.Impl β) l hl hlr (fun hl hlr ↦ r) fun sz k v l' r' hl hlr ↦ Std.DTreeMap.Internal.Impl.glue.match_1 sz k v l' r' (fun r hr hlr ↦ Std.DTreeMap.Internal.Impl β) r hr hlr (fun hr hlr ↦ l) fun sz' k' v' l'' r'' hr hlr ↦ ite (LT.lt sz sz') (Std.DTreeMap.Internal.Impl.balanceLErase (Std.DTreeMap.Internal.Impl.View.k (Std.DTreeMap.Internal.Impl.minView k' v' l'' r'' (Std.DTreeMap.Internal.Impl.glue._proof_4 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_6 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_8 sz k v l' r' hl sz' k' v' l'' r'' hr))) (Std.DTreeMap.Internal.Impl.View.v (Std.DTreeMap.Internal.Impl.minView k' v' l'' r'' (Std.DTreeMap.Internal.Impl.glue._proof_4 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_6 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_8 sz k v l' r' hl sz' k' v' l'' r'' hr))) (Std.DTreeMap.Internal.Impl.inner sz k v l' r') (Std.DTreeMap.Internal.Impl.Tree.impl (Std.DTreeMap.Internal.Impl.minView k' v' l'' r'' (Std.DTreeMap.Internal.Impl.glue._proof_4 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_6 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_8 sz k v l' r' hl sz' k' v' l'' r'' hr)).tree) hl (Std.DTreeMap.Internal.Impl.glue._proof_10 sz k v l' r' hl sz' k' v' l'' r'' hr (Std.DTreeMap.Internal.Impl.Tree.impl (Std.DTreeMap.Internal.Impl.minView k' v' l'' r'' (Std.DTreeMap.Internal.Impl.glue._proof_4 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_6 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_8 sz k v l' r' hl sz' k' v' l'' r'' hr)).tree) (Std.DTreeMap.Internal.Impl.Tree.balanced_impl (Std.DTreeMap.Internal.Impl.minView k' v' l'' r'' (Std.DTreeMap.Internal.Impl.glue._proof_4 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_6 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_8 sz k v l' r' hl sz' k' v' l'' r'' hr)).tree)) (Std.DTreeMap.Internal.Impl.glue._proof_12 sz k v l' r' sz' k' v' l'' r'' hr hlr (Std.DTreeMap.Internal.Impl.Tree.impl (Std.DTreeMap.Internal.Impl.minView k' v' l'' r'' (Std.DTreeMap.Internal.Impl.glue._proof_4 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_6 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_8 sz k v l' r' hl sz' k' v' l'' r'' hr)).tree) (Std.DTreeMap.Internal.Impl.Tree.size_impl (Std.DTreeMap.Internal.Impl.minView k' v' l'' r'' (Std.DTreeMap.Internal.Impl.glue._proof_4 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_6 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_8 sz k v l' r' hl sz' k' v' l'' r'' hr)).tree))) (Std.DTreeMap.Internal.Impl.balanceRErase (Std.DTreeMap.Internal.Impl.View.k (Std.DTreeMap.Internal.Impl.maxView k v l' r' (Std.DTreeMap.Internal.Impl.glue._proof_14 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_16 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_18 sz k v l' r' hl sz' k' v' l'' r'' hr))) (Std.DTreeMap.Internal.Impl.View.v (Std.DTreeMap.Internal.Impl.maxView k v l' r' (Std.DTreeMap.Internal.Impl.glue._proof_14 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_16 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_18 sz k v l' r' hl sz' k' v' l'' r'' hr))) (Std.DTreeMap.Internal.Impl.Tree.impl (Std.DTreeMap.Internal.Impl.maxView k v l' r' (Std.DTreeMap.Internal.Impl.glue._proof_14 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_16 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_18 sz k v l' r' hl sz' k' v' l'' r'' hr)).tree) (Std.DTreeMap.Internal.Impl.inner sz' k' v' l'' r'') (Std.DTreeMap.Internal.Impl.glue._proof_10 sz k v l' r' hl sz' k' v' l'' r'' hr (Std.DTreeMap.Internal.Impl.Tree.impl (Std.DTreeMap.Internal.Impl.maxView k v l' r' (Std.DTreeMap.Internal.Impl.glue._proof_14 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_16 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_18 sz k v l' r' hl sz' k' v' l'' r'' hr)).tree) (Std.DTreeMap.Internal.Impl.Tree.balanced_impl (Std.DTreeMap.Internal.Impl.maxView k v l' r' (Std.DTreeMap.Internal.Impl.glue._proof_14 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_16 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_18 sz k v l' r' hl sz' k' v' l'' r'' hr)).tree)) hr (Std.DTreeMap.Internal.Impl.glue._proof_20 sz k v l' r' hl sz' k' v' l'' r'' hlr (Std.DTreeMap.Internal.Impl.Tree.impl (Std.DTreeMap.Internal.Impl.maxView k v l' r' (Std.DTreeMap.Internal.Impl.glue._proof_14 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_16 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_18 sz k v l' r' hl sz' k' v' l'' r'' hr)).tree) (Std.DTreeMap.Internal.Impl.Tree.size_impl (Std.DTreeMap.Internal.Impl.maxView k v l' r' (Std.DTreeMap.Internal.Impl.glue._proof_14 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_16 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_18 sz k v l' r' hl sz' k' v' l'' r'' hr)).tree))))) (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size l) (Std.DTreeMap.Internal.Impl.size r))) l hl hlr (fun hl hlr h ↦ Eq.ndrec (fun {hl hlr} h ↦ Eq.ndrec (fun h ↦ Eq.ndrec (id (id (Decidable.byContradiction fun a ↦ _private.Std.Data.DTreeMap.Internal.Operations.0.Std.DTreeMap.Internal.Impl.minView._proof_5 r a))) (Eq.symm (eq_of_heq h))) (Eq.symm (eq_of_heq h))) (Eq.symm h) hl hlr) (fun size k' v' l' r' hl hlr h ↦ Eq.ndrec (fun {hl hlr} h ↦ Eq.ndrec (fun h ↦ Eq.ndrec (id (_private.Std.Data.DTreeMap.Internal.Operations.0.Std.DTreeMap.Internal.Impl.glue.match_1.splitter size k' v' l' r' (fun r hr hlr ↦ Eq r r → HEq hr hr → HEq hlr hlr → Eq (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.glue.match_1 size k' v' l' r' (fun r hr hlr ↦ Std.DTreeMap.Internal.Impl β) r hr hlr (fun hr hlr ↦ Std.DTreeMap.Internal.Impl.inner size k' v' l' r') fun sz' k' v' l'' r'' hr hlr ↦ ite (LT.lt size sz') (Std.DTreeMap.Internal.Impl.balanceLErase (Std.DTreeMap.Internal.Impl.View.k (Std.DTreeMap.Internal.Impl.minView k' v' l'' r'' (Std.DTreeMap.Internal.Impl.glue._proof_4 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_6 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_8 size k' v' l' r' hl sz' k' v' l'' r'' hr))) (Std.DTreeMap.Internal.Impl.View.v (Std.DTreeMap.Internal.Impl.minView k' v' l'' r'' (Std.DTreeMap.Internal.Impl.glue._proof_4 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_6 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_8 size k' v' l' r' hl sz' k' v' l'' r'' hr))) (Std.DTreeMap.Internal.Impl.inner size k' v' l' r') (Std.DTreeMap.Internal.Impl.Tree.impl (Std.DTreeMap.Internal.Impl.minView k' v' l'' r'' (Std.DTreeMap.Internal.Impl.glue._proof_4 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_6 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_8 size k' v' l' r' hl sz' k' v' l'' r'' hr)).tree) hl (Std.DTreeMap.Internal.Impl.glue._proof_10 size k' v' l' r' hl sz' k' v' l'' r'' hr (Std.DTreeMap.Internal.Impl.Tree.impl (Std.DTreeMap.Internal.Impl.minView k' v' l'' r'' (Std.DTreeMap.Internal.Impl.glue._proof_4 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_6 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_8 size k' v' l' r' hl sz' k' v' l'' r'' hr)).tree) (Std.DTreeMap.Internal.Impl.Tree.balanced_impl (Std.DTreeMap.Internal.Impl.minView k' v' l'' r'' (Std.DTreeMap.Internal.Impl.glue._proof_4 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_6 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_8 size k' v' l' r' hl sz' k' v' l'' r'' hr)).tree)) (Std.DTreeMap.Internal.Impl.glue._proof_12 size k' v' l' r' sz' k' v' l'' r'' hr hlr (Std.DTreeMap.Internal.Impl.Tree.impl (Std.DTreeMap.Internal.Impl.minView k' v' l'' r'' (Std.DTreeMap.Internal.Impl.glue._proof_4 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_6 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_8 size k' v' l' r' hl sz' k' v' l'' r'' hr)).tree) (Std.DTreeMap.Internal.Impl.Tree.size_impl (Std.DTreeMap.Internal.Impl.minView k' v' l'' r'' (Std.DTreeMap.Internal.Impl.glue._proof_4 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_6 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_8 size k' v' l' r' hl sz' k' v' l'' r'' hr)).tree))) (Std.DTreeMap.Internal.Impl.balanceRErase (Std.DTreeMap.Internal.Impl.View.k (Std.DTreeMap.Internal.Impl.maxView k' v' l' r' (Std.DTreeMap.Internal.Impl.glue._proof_14 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_16 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_18 size k' v' l' r' hl sz' k' v' l'' r'' hr))) (Std.DTreeMap.Internal.Impl.View.v (Std.DTreeMap.Internal.Impl.maxView k' v' l' r' (Std.DTreeMap.Internal.Impl.glue._proof_14 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_16 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_18 size k' v' l' r' hl sz' k' v' l'' r'' hr))) (Std.DTreeMap.Internal.Impl.Tree.impl (Std.DTreeMap.Internal.Impl.maxView k' v' l' r' (Std.DTreeMap.Internal.Impl.glue._proof_14 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_16 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_18 size k' v' l' r' hl sz' k' v' l'' r'' hr)).tree) (Std.DTreeMap.Internal.Impl.inner sz' k' v' l'' r'') (Std.DTreeMap.Internal.Impl.glue._proof_10 size k' v' l' r' hl sz' k' v' l'' r'' hr (Std.DTreeMap.Internal.Impl.Tree.impl (Std.DTreeMap.Internal.Impl.maxView k' v' l' r' (Std.DTreeMap.Internal.Impl.glue._proof_14 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_16 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_18 size k' v' l' r' hl sz' k' v' l'' r'' hr)).tree) (Std.DTreeMap.Internal.Impl.Tree.balanced_impl (Std.DTreeMap.Internal.Impl.maxView k' v' l' r' (Std.DTreeMap.Internal.Impl.glue._proof_14 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_16 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_18 size k' v' l' r' hl sz' k' v' l'' r'' hr)).tree)) hr (Std.DTreeMap.Internal.Impl.glue._proof_20 size k' v' l' r' hl sz' k' v' l'' r'' hlr (Std.DTreeMap.Internal.Impl.Tree.impl (Std.DTreeMap.Internal.Impl.maxView k' v' l' r' (Std.DTreeMap.Internal.Impl.glue._proof_14 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_16 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_18 size k' v' l' r' hl sz' k' v' l'' r'' hr)).tree) (Std.DTreeMap.Internal.Impl.Tree.size_impl (Std.DTreeMap.Internal.Impl.maxView k' v' l' r' (Std.DTreeMap.Internal.Impl.glue._proof_14 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_16 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_18 size k' v' l' r' hl sz' k' v' l'' r'' hr)).tree))))) (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k' v' l' r')) (Std.DTreeMap.Internal.Impl.size r))) r hr hlr (fun hr hlr h ↦ Eq.ndrec (fun {hr} hlr hlr h ↦ Eq.ndrec (fun h ↦ Eq.ndrec (id (id (And.casesOn (Eq.mp (Std.DTreeMap.Internal.Impl.balanced_inner_iff._simp_1) hl) (fun left right h ↦ And.casesOn right (fun left right h ↦ And.casesOn right (fun left right h ↦ Eq.casesOn right (fun h ↦ Eq.ndrec (fun hlr hlr right h ↦ Decidable.byContradiction fun a ↦ _private.Std.Data.DTreeMap.Internal.Operations.0.Std.DTreeMap.Internal.Impl.size_glue._proof_1_9 l' r' a) h hlr hlr right) (Eq.refl (HAdd.hAdd (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size l') (OfNat.ofNat 1)) (Std.DTreeMap.Internal.Impl.size r'))) (HEq.refl right)) (Eq.refl right)) (Eq.refl right)) (Eq.refl (Eq.mp (Std.DTreeMap.Internal.Impl.balanced_inner_iff._simp_1) hl))))) (Eq.symm (eq_of_heq h))) (Eq.symm (eq_of_heq h))) (Eq.symm h) hr hlr hlr) (fun sz' k' v' l'' r'' hr hlr h ↦ Eq.ndrec (fun {hr} hlr hlr h ↦ Eq.ndrec (fun h ↦ Eq.ndrec (id (Decidable.casesOn (Nat.decLt size sz') (fun h ↦ Eq.mpr (id (congrFun' (congrArg (Eq) (congrArg (Std.DTreeMap.Internal.Impl.size) (if_neg h))) (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k' v' l' r')) (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner sz' k' v' l'' r''))))) (Eq.mpr (id (congrFun' (congrArg (Eq) (Eq.trans (Std.DTreeMap.Internal.Impl.size_balanceRErase (Std.DTreeMap.Internal.Impl.glue._proof_10 size k' v' l' r' hl sz' k' v' l'' r'' hr (Std.DTreeMap.Internal.Impl.Tree.impl (Std.DTreeMap.Internal.Impl.maxView k' v' l' r' (Std.DTreeMap.Internal.Impl.glue._proof_14 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_16 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_18 size k' v' l' r' hl sz' k' v' l'' r'' hr)).tree) (Std.DTreeMap.Internal.Impl.Tree.balanced_impl (Std.DTreeMap.Internal.Impl.maxView k' v' l' r' (Std.DTreeMap.Internal.Impl.glue._proof_14 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_16 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_18 size k' v' l' r' hl sz' k' v' l'' r'' hr)).tree)) hr (Std.DTreeMap.Internal.Impl.glue._proof_20 size k' v' l' r' hl sz' k' v' l'' r'' hlr (Std.DTreeMap.Internal.Impl.Tree.impl (Std.DTreeMap.Internal.Impl.maxView k' v' l' r' (Std.DTreeMap.Internal.Impl.glue._proof_14 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_16 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_18 size k' v' l' r' hl sz' k' v' l'' r'' hr)).tree) (Std.DTreeMap.Internal.Impl.Tree.size_impl (Std.DTreeMap.Internal.Impl.maxView k' v' l' r' (Std.DTreeMap.Internal.Impl.glue._proof_14 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_16 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_18 size k' v' l' r' hl sz' k' v' l'' r'' hr)).tree))) (congrFun' (congrArg (HAdd.hAdd) (congrFun' (congrArg (HAdd.hAdd) (Std.DTreeMap.Internal.Impl.Tree.size_impl (Std.DTreeMap.Internal.Impl.maxView k' v' l' r' (Std.DTreeMap.Internal.Impl.glue._proof_14 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_16 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_18 size k' v' l' r' hl sz' k' v' l'' r'' hr)).tree)) (OfNat.ofNat 1))) sz'))) (HAdd.hAdd size sz'))) (And.casesOn (Eq.mp (Std.DTreeMap.Internal.Impl.balanced_inner_iff._simp_1) hr) (fun left right h ↦ And.casesOn right (fun left right h ↦ And.casesOn right (fun left right h ↦ And.casesOn (Eq.mp (Std.DTreeMap.Internal.Impl.balanced_inner_iff._simp_1) hl) (fun left right h ↦ And.casesOn right (fun left right h ↦ And.casesOn right (fun left right h ↦ Eq.casesOn right (fun h ↦ Eq.ndrec (fun hlr hlr h right h ↦ Eq.casesOn right (fun h ↦ Eq.ndrec (fun hlr right hlr h h ↦ Decidable.byContradiction fun a ↦ _private.Std.Data.DTreeMap.Internal.Operations.0.Std.DTreeMap.Internal.Impl.size_glue._proof_1_11 l' r' l'' r'' a) h hlr right hlr h) (Eq.refl (HAdd.hAdd (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size l') (OfNat.ofNat 1)) (Std.DTreeMap.Internal.Impl.size r'))) (HEq.refl right)) h hlr hlr h right) (Eq.refl (HAdd.hAdd (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size l'') (OfNat.ofNat 1)) (Std.DTreeMap.Internal.Impl.size r''))) (HEq.refl right)) (Eq.refl right)) (Eq.refl right)) (Eq.refl (Eq.mp (Std.DTreeMap.Internal.Impl.balanced_inner_iff._simp_1) hl))) (Eq.refl right)) (Eq.refl right)) (Eq.refl (Eq.mp (Std.DTreeMap.Internal.Impl.balanced_inner_iff._simp_1) hr))))) fun h ↦ Eq.mpr (id (congrFun' (congrArg (Eq) (congrArg (Std.DTreeMap.Internal.Impl.size) (if_pos h))) (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k' v' l' r')) (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner sz' k' v' l'' r''))))) (Eq.mpr (id (congrFun' (congrArg (Eq) (Eq.trans (Std.DTreeMap.Internal.Impl.size_balanceLErase hl (Std.DTreeMap.Internal.Impl.glue._proof_10 size k' v' l' r' hl sz' k' v' l'' r'' hr (Std.DTreeMap.Internal.Impl.Tree.impl (Std.DTreeMap.Internal.Impl.minView k' v' l'' r'' (Std.DTreeMap.Internal.Impl.glue._proof_4 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_6 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_8 size k' v' l' r' hl sz' k' v' l'' r'' hr)).tree) (Std.DTreeMap.Internal.Impl.Tree.balanced_impl (Std.DTreeMap.Internal.Impl.minView k' v' l'' r'' (Std.DTreeMap.Internal.Impl.glue._proof_4 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_6 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_8 size k' v' l' r' hl sz' k' v' l'' r'' hr)).tree)) (Std.DTreeMap.Internal.Impl.glue._proof_12 size k' v' l' r' sz' k' v' l'' r'' hr hlr (Std.DTreeMap.Internal.Impl.Tree.impl (Std.DTreeMap.Internal.Impl.minView k' v' l'' r'' (Std.DTreeMap.Internal.Impl.glue._proof_4 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_6 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_8 size k' v' l' r' hl sz' k' v' l'' r'' hr)).tree) (Std.DTreeMap.Internal.Impl.Tree.size_impl (Std.DTreeMap.Internal.Impl.minView k' v' l'' r'' (Std.DTreeMap.Internal.Impl.glue._proof_4 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_6 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_8 size k' v' l' r' hl sz' k' v' l'' r'' hr)).tree))) (congrArg (HAdd.hAdd (HAdd.hAdd size (OfNat.ofNat 1))) (Std.DTreeMap.Internal.Impl.Tree.size_impl (Std.DTreeMap.Internal.Impl.minView k' v' l'' r'' (Std.DTreeMap.Internal.Impl.glue._proof_4 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_6 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_8 size k' v' l' r' hl sz' k' v' l'' r'' hr)).tree)))) (HAdd.hAdd size sz'))) (And.casesOn (Eq.mp (Std.DTreeMap.Internal.Impl.balanced_inner_iff._simp_1) hr) (fun left right h ↦ And.casesOn right (fun left right h ↦ And.casesOn right (fun left right h ↦ And.casesOn (Eq.mp (Std.DTreeMap.Internal.Impl.balanced_inner_iff._simp_1) hl) (fun left right h ↦ And.casesOn right (fun left right h ↦ And.casesOn right (fun left right h ↦ Eq.casesOn right (fun h ↦ Eq.ndrec (fun hlr hlr h right h ↦ Eq.casesOn right (fun h ↦ Eq.ndrec (fun hlr right hlr h h ↦ Decidable.byContradiction fun a ↦ _private.Std.Data.DTreeMap.Internal.Operations.0.Std.DTreeMap.Internal.Impl.size_glue._proof_1_10 l' r' l'' r'' a) h hlr right hlr h) (Eq.refl (HAdd.hAdd (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size l') (OfNat.ofNat 1)) (Std.DTreeMap.Internal.Impl.size r'))) (HEq.refl right)) h hlr hlr h right) (Eq.refl (HAdd.hAdd (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size l'') (OfNat.ofNat 1)) (Std.DTreeMap.Internal.Impl.size r''))) (HEq.refl right)) (Eq.refl right)) (Eq.refl right)) (Eq.refl (Eq.mp (Std.DTreeMap.Internal.Impl.balanced_inner_iff._simp_1) hl))) (Eq.refl right)) (Eq.refl right)) (Eq.refl (Eq.mp (Std.DTreeMap.Internal.Impl.balanced_inner_iff._simp_1) hr)))))) (Eq.symm (eq_of_heq h))) (Eq.symm (eq_of_heq h))) (Eq.symm h) hr hlr hlr) (Eq.refl r) (HEq.refl hr) (HEq.refl hlr))) (Eq.symm (eq_of_heq h))) (Eq.symm (eq_of_heq h))) (Eq.symm h) hl hlr) (Eq.refl l) (HEq.refl hl) (HEq.refl hlr))
has type
  (size : Nat) → (k : α) → (v : β k) → (l : Std.DTreeMap.Internal.Impl β) → (r : Std.DTreeMap.Internal.Impl β) → (fun x ↦ (hlb : Std.DTreeMap.Internal.Impl.Balanced (Std.DTreeMap.Internal.Impl.inner sz k v x r')) → (hlr : Std.DTreeMap.Internal.Impl.BalanceLErasePrecond (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner sz k v x r')) (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k v l r))) → (fun ll lr hlb hlr ↦ Std.DTreeMap.Internal.Impl β) x r' hlb hlr) l → (fun x ↦ (hlb : Std.DTreeMap.Internal.Impl.Balanced (Std.DTreeMap.Internal.Impl.inner sz k v x r')) → (hlr : Std.DTreeMap.Internal.Impl.BalanceLErasePrecond (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner sz k v x r')) (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k v l r))) → (fun ll lr hlb hlr ↦ Std.DTreeMap.Internal.Impl β) x r' hlb hlr) r → (hlb : Std.DTreeMap.Internal.Impl.Balanced (Std.DTreeMap.Internal.Impl.inner sz k v (Std.DTreeMap.Internal.Impl.inner size k v l r) r')) → (hlr : Std.DTreeMap.Internal.Impl.BalanceLErasePrecond (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner sz k v (Std.DTreeMap.Internal.Impl.inner size k v l r) r')) (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k v l r))) → (fun ll lr hlb hlr ↦ Std.DTreeMap.Internal.Impl β) (Std.DTreeMap.Internal.Impl.inner size k v l r) r' hlb hlr
but is expected to have type
  (size : Nat) → (k : α) → (v : β k) → (l : Std.DTreeMap.Internal.Impl β) → (r : Std.DTreeMap.Internal.Impl β) → (fun x ↦ (hlb : Std.DTreeMap.Internal.Impl.Balanced (Std.DTreeMap.Internal.Impl.inner sz k v x r')) → (hlr : Std.DTreeMap.Internal.Impl.BalanceLErasePrecond (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner sz k v x r')) (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k v l r))) → (fun ll lr hlb hlr ↦ Std.DTreeMap.Internal.Impl β) x r' hlb hlr) l → (fun x ↦ (hlb : Std.DTreeMap.Internal.Impl.Balanced (Std.DTreeMap.Internal.Impl.inner sz k v x r')) → (hlr : Std.DTreeMap.Internal.Impl.BalanceLErasePrecond (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner sz k v x r')) (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k v l r))) → (fun ll lr hlb hlr ↦ Std.DTreeMap.Internal.Impl β) x r' hlb hlr) r → (fun x ↦ (hlb : Std.DTreeMap.Internal.Impl.Balanced (Std.DTreeMap.Internal.Impl.inner sz k v x r')) → (hlr : Std.DTreeMap.Internal.Impl.BalanceLErasePrecond (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner sz k v x r')) (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k v l r))) → (fun ll lr hlb hlr ↦ Std.DTreeMap.Internal.Impl β) x r' hlb hlr) (Std.DTreeMap.Internal.Impl.inner size k v l r)
theorem Std.DTreeMap.Internal.Impl.toListModel_minView.{u, v} : ∀ {α : Type u}, ∀ {β : α → Type v}, ∀ {k : α}, ∀ {v : β k}, ∀ {l : Std.DTreeMap.Internal.Impl β}, ∀ {r : Std.DTreeMap.Internal.Impl β}, ∀ {hl : Std.DTreeMap.Internal.Impl.Balanced l}, ∀ {hr : Std.DTreeMap.Internal.Impl.Balanced r}, ∀ {hlr : Std.DTreeMap.Internal.Impl.BalancedAtRoot (Std.DTreeMap.Internal.Impl.size l) (Std.DTreeMap.Internal.Impl.size r)}, Eq (List.cons (Sigma.mk (Std.DTreeMap.Internal.Impl.View.k (Std.DTreeMap.Internal.Impl.minView k v l r hl hr hlr)) (Std.DTreeMap.Internal.Impl.View.v (Std.DTreeMap.Internal.Impl.minView k v l r hl hr hlr))) (Std.DTreeMap.Internal.Impl.toListModel (Std.DTreeMap.Internal.Impl.Tree.impl (Std.DTreeMap.Internal.Impl.View.tree (Std.DTreeMap.Internal.Impl.minView k v l r hl hr hlr))))) (HAppend.hAppend (Std.DTreeMap.Internal.Impl.toListModel l) (List.cons (Sigma.mk k v) (Std.DTreeMap.Internal.Impl.toListModel r))) := fun {α β k v l r hl hr hlr} ↦ Std.DTreeMap.Internal.Impl.minView.induct (fun {k v l r hl hr hlr} ↦ Eq (List.cons (Sigma.mk (Std.DTreeMap.Internal.Impl.View.k (Std.DTreeMap.Internal.Impl.minView k v l r hl hr hlr)) (Std.DTreeMap.Internal.Impl.View.v (Std.DTreeMap.Internal.Impl.minView k v l r hl hr hlr))) (Std.DTreeMap.Internal.Impl.toListModel (Std.DTreeMap.Internal.Impl.Tree.impl (Std.DTreeMap.Internal.Impl.View.tree (Std.DTreeMap.Internal.Impl.minView k v l r hl hr hlr))))) (HAppend.hAppend (Std.DTreeMap.Internal.Impl.toListModel l) (List.cons (Sigma.mk k v) (Std.DTreeMap.Internal.Impl.toListModel r)))) (fun k v r hr hl hlr ↦ of_eq_true (eq_self (List.cons (Sigma.mk k v) (Std.DTreeMap.Internal.Impl.toListModel r)))) (fun k v r hr size k' v' l' r' hl hlr dk dv dt hdt hdt' x ih1 ↦ of_eq_true (Eq.trans (congr (congrArg (Eq) (congrArg (List.cons (Sigma.mk (Std.DTreeMap.Internal.Impl.View.k (Std.DTreeMap.Internal.Impl.minView k' v' l' r' (Std.DTreeMap.Internal.Impl.minView._proof_9 size k' v' l' r' hl) (Std.DTreeMap.Internal.Impl.minView._proof_11 size k' v' l' r' hl) (Std.DTreeMap.Internal.Impl.minView._proof_13 size k' v' l' r' hl))) (Std.DTreeMap.Internal.Impl.View.v (Std.DTreeMap.Internal.Impl.minView k' v' l' r' (Std.DTreeMap.Internal.Impl.minView._proof_9 size k' v' l' r' hl) (Std.DTreeMap.Internal.Impl.minView._proof_11 size k' v' l' r' hl) (Std.DTreeMap.Internal.Impl.minView._proof_13 size k' v' l' r' hl))))) (Std.DTreeMap.Internal.Impl.toListModel_balanceRErase))) (congrFun' (congrArg (HAppend.hAppend) (Eq.symm ih1)) (List.cons (Sigma.mk k v) (Std.DTreeMap.Internal.Impl.toListModel r)))) (eq_self (List.cons (Sigma.mk (Std.DTreeMap.Internal.Impl.View.k (Std.DTreeMap.Internal.Impl.minView k' v' l' r' (Std.DTreeMap.Internal.Impl.minView._proof_9 size k' v' l' r' hl) (Std.DTreeMap.Internal.Impl.minView._proof_11 size k' v' l' r' hl) (Std.DTreeMap.Internal.Impl.minView._proof_13 size k' v' l' r' hl))) (Std.DTreeMap.Internal.Impl.View.v (Std.DTreeMap.Internal.Impl.minView k' v' l' r' (Std.DTreeMap.Internal.Impl.minView._proof_9 size k' v' l' r' hl) (Std.DTreeMap.Internal.Impl.minView._proof_11 size k' v' l' r' hl) (Std.DTreeMap.Internal.Impl.minView._proof_13 size k' v' l' r' hl)))) (HAppend.hAppend (Std.DTreeMap.Internal.Impl.toListModel (Std.DTreeMap.Internal.Impl.Tree.impl (Std.DTreeMap.Internal.Impl.minView k' v' l' r' (Std.DTreeMap.Internal.Impl.minView._proof_9 size k' v' l' r' hl) (Std.DTreeMap.Internal.Impl.minView._proof_11 size k' v' l' r' hl) (Std.DTreeMap.Internal.Impl.minView._proof_13 size k' v' l' r' hl)).tree)) (List.cons (Sigma.mk k v) (Std.DTreeMap.Internal.Impl.toListModel r))))))) k v l r hl hr hlr
has type
  (size : Nat) → (k : α) → (v : β k) → (l : Std.DTreeMap.Internal.Impl β) → (r : Std.DTreeMap.Internal.Impl β) → (fun x ↦ (hlb : Std.DTreeMap.Internal.Impl.Balanced x) → (hlr : Std.DTreeMap.Internal.Impl.BalanceLErasePrecond (Std.DTreeMap.Internal.Impl.size x) (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k v l r))) → (fun l hlb hlr ↦ Std.DTreeMap.Internal.Impl β) x hlb hlr) l → (fun x ↦ (hlb : Std.DTreeMap.Internal.Impl.Balanced x) → (hlr : Std.DTreeMap.Internal.Impl.BalanceLErasePrecond (Std.DTreeMap.Internal.Impl.size x) (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k v l r))) → (fun l hlb hlr ↦ Std.DTreeMap.Internal.Impl β) x hlb hlr) r → Std.DTreeMap.Internal.Impl.Balanced (Std.DTreeMap.Internal.Impl.inner size k v l r) → Std.DTreeMap.Internal.Impl.BalanceLErasePrecond (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k v l r)) (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k v l r)) → Std.DTreeMap.Internal.Impl β
but is expected to have type
  (size : Nat) → (k : α) → (v : β k) → (l : Std.DTreeMap.Internal.Impl β) → (r : Std.DTreeMap.Internal.Impl β) → (fun x ↦ (hlb : Std.DTreeMap.Internal.Impl.Balanced x) → (hlr : Std.DTreeMap.Internal.Impl.BalanceLErasePrecond (Std.DTreeMap.Internal.Impl.size x) (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k v l r))) → (fun l hlb hlr ↦ Std.DTreeMap.Internal.Impl β) x hlb hlr) l → (fun x ↦ (hlb : Std.DTreeMap.Internal.Impl.Balanced x) → (hlr : Std.DTreeMap.Internal.Impl.BalanceLErasePrecond (Std.DTreeMap.Internal.Impl.size x) (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k v l r))) → (fun l hlb hlr ↦ Std.DTreeMap.Internal.Impl β) x hlb hlr) r → (fun x ↦ (hlb : Std.DTreeMap.Internal.Impl.Balanced x) → (hlr : Std.DTreeMap.Internal.Impl.BalanceLErasePrecond (Std.DTreeMap.Internal.Impl.size x) (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k v l r))) → (fun l hlb hlr ↦ Std.DTreeMap.Internal.Impl β) x hlb hlr) (Std.DTreeMap.Internal.Impl.inner size k v l r)
theorem Std.DTreeMap.Internal.Impl.toListModel_glue.{u, v} : ∀ {α : Type u}, ∀ {β : α → Type v}, ∀ {l : Std.DTreeMap.Internal.Impl β}, ∀ {r : Std.DTreeMap.Internal.Impl β}, ∀ {hl : Std.DTreeMap.Internal.Impl.Balanced l}, ∀ {hr : Std.DTreeMap.Internal.Impl.Balanced r}, ∀ {hlr : Std.DTreeMap.Internal.Impl.BalancedAtRoot (Std.DTreeMap.Internal.Impl.size l) (Std.DTreeMap.Internal.Impl.size r)}, Eq (Std.DTreeMap.Internal.Impl.toListModel (Std.DTreeMap.Internal.Impl.glue l r hl hr hlr)) (HAppend.hAppend (Std.DTreeMap.Internal.Impl.toListModel l) (Std.DTreeMap.Internal.Impl.toListModel r)) := fun {α β l r hl hr hlr} ↦ Std.DTreeMap.Internal.Impl.casesOn l (fun size k v l r h ↦ Eq.ndrec (fun {hl hlr} ↦ Std.DTreeMap.Internal.Impl.casesOn r (fun size k v l r h ↦ Eq.ndrec (fun {hr hlr} ↦ id (Decidable.casesOn (Nat.decLt size size) (fun h ↦ Eq.mpr (id (congrFun' (congrArg (Eq) (congrArg (Std.DTreeMap.Internal.Impl.toListModel) (if_neg h))) (HAppend.hAppend (Std.DTreeMap.Internal.Impl.toListModel (Std.DTreeMap.Internal.Impl.inner size k v l r)) (Std.DTreeMap.Internal.Impl.toListModel (Std.DTreeMap.Internal.Impl.inner size k v l r))))) (Eq.mpr (id (congrArg (fun _a ↦ Eq _a (HAppend.hAppend (Std.DTreeMap.Internal.Impl.toListModel (Std.DTreeMap.Internal.Impl.inner size k v l r)) (Std.DTreeMap.Internal.Impl.toListModel (Std.DTreeMap.Internal.Impl.inner size k v l r)))) (Std.DTreeMap.Internal.Impl.toListModel_balanceRErase))) (Eq.mpr (id (congrArg (fun _a ↦ Eq (HAppend.hAppend (Std.DTreeMap.Internal.Impl.toListModel (Std.DTreeMap.Internal.Impl.Tree.impl (Std.DTreeMap.Internal.Impl.maxView k v l r (Std.DTreeMap.Internal.Impl.glue._proof_14 size k v l r hl size k v l r hr) (Std.DTreeMap.Internal.Impl.glue._proof_16 size k v l r hl size k v l r hr) (Std.DTreeMap.Internal.Impl.glue._proof_18 size k v l r hl size k v l r hr)).tree)) _a) (HAppend.hAppend (Std.DTreeMap.Internal.Impl.toListModel (Std.DTreeMap.Internal.Impl.inner size k v l r)) (Std.DTreeMap.Internal.Impl.toListModel (Std.DTreeMap.Internal.Impl.inner size k v l r)))) (Eq.symm (List.singleton_append)))) (Eq.mpr (id (congrArg (fun _a ↦ Eq _a (HAppend.hAppend (Std.DTreeMap.Internal.Impl.toListModel (Std.DTreeMap.Internal.Impl.inner size k v l r)) (Std.DTreeMap.Internal.Impl.toListModel (Std.DTreeMap.Internal.Impl.inner size k v l r)))) (Eq.symm (List.append_assoc (Std.DTreeMap.Internal.Impl.toListModel (Std.DTreeMap.Internal.Impl.Tree.impl (Std.DTreeMap.Internal.Impl.maxView k v l r (Std.DTreeMap.Internal.Impl.glue._proof_14 size k v l r hl size k v l r hr) (Std.DTreeMap.Internal.Impl.glue._proof_16 size k v l r hl size k v l r hr) (Std.DTreeMap.Internal.Impl.glue._proof_18 size k v l r hl size k v l r hr)).tree)) (List.cons (Sigma.mk (Std.DTreeMap.Internal.Impl.View.k (Std.DTreeMap.Internal.Impl.maxView k v l r (Std.DTreeMap.Internal.Impl.glue._proof_14 size k v l r hl size k v l r hr) (Std.DTreeMap.Internal.Impl.glue._proof_16 size k v l r hl size k v l r hr) (Std.DTreeMap.Internal.Impl.glue._proof_18 size k v l r hl size k v l r hr))) (Std.DTreeMap.Internal.Impl.View.v (Std.DTreeMap.Internal.Impl.maxView k v l r (Std.DTreeMap.Internal.Impl.glue._proof_14 size k v l r hl size k v l r hr) (Std.DTreeMap.Internal.Impl.glue._proof_16 size k v l r hl size k v l r hr) (Std.DTreeMap.Internal.Impl.glue._proof_18 size k v l r hl size k v l r hr)))) (List.nil)) (Std.DTreeMap.Internal.Impl.toListModel (Std.DTreeMap.Internal.Impl.inner size k v l r)))))) (of_eq_true (Eq.trans (congr (congrArg (Eq) (Eq.trans (congrFun' (congrArg (HAppend.hAppend) (Std.DTreeMap.Internal.Impl.toListModel_maxView)) (HAppend.hAppend (Std.DTreeMap.Internal.Impl.toListModel l) (List.cons (Sigma.mk k v) (Std.DTreeMap.Internal.Impl.toListModel r)))) (List.append_assoc (Std.DTreeMap.Internal.Impl.toListModel l) (List.cons (Sigma.mk k v) (Std.DTreeMap.Internal.Impl.toListModel r)) (HAppend.hAppend (Std.DTreeMap.Internal.Impl.toListModel l) (List.cons (Sigma.mk k v) (Std.DTreeMap.Internal.Impl.toListModel r)))))) (List.append_assoc (Std.DTreeMap.Internal.Impl.toListModel l) (List.cons (Sigma.mk k v) (Std.DTreeMap.Internal.Impl.toListModel r)) (HAppend.hAppend (Std.DTreeMap.Internal.Impl.toListModel l) (List.cons (Sigma.mk k v) (Std.DTreeMap.Internal.Impl.toListModel r))))) (eq_self (HAppend.hAppend (Std.DTreeMap.Internal.Impl.toListModel l) (List.cons (Sigma.mk k v) (HAppend.hAppend (Std.DTreeMap.Internal.Impl.toListModel r) (HAppend.hAppend (Std.DTreeMap.Internal.Impl.toListModel l) (List.cons (Sigma.mk k v) (Std.DTreeMap.Internal.Impl.toListModel r))))))))))))) fun h ↦ Eq.mpr (id (congrFun' (congrArg (Eq) (congrArg (Std.DTreeMap.Internal.Impl.toListModel) (if_pos h))) (HAppend.hAppend (Std.DTreeMap.Internal.Impl.toListModel (Std.DTreeMap.Internal.Impl.inner size k v l r)) (Std.DTreeMap.Internal.Impl.toListModel (Std.DTreeMap.Internal.Impl.inner size k v l r))))) (of_eq_true (Eq.trans (congr (congrArg (Eq) (Eq.trans (Std.DTreeMap.Internal.Impl.toListModel_balanceLErase) (Eq.trans (congrArg (HAppend.hAppend (HAppend.hAppend (Std.DTreeMap.Internal.Impl.toListModel l) (List.cons (Sigma.mk k v) (Std.DTreeMap.Internal.Impl.toListModel r)))) (Std.DTreeMap.Internal.Impl.toListModel_minView)) (List.append_assoc (Std.DTreeMap.Internal.Impl.toListModel l) (List.cons (Sigma.mk k v) (Std.DTreeMap.Internal.Impl.toListModel r)) (HAppend.hAppend (Std.DTreeMap.Internal.Impl.toListModel l) (List.cons (Sigma.mk k v) (Std.DTreeMap.Internal.Impl.toListModel r))))))) (List.append_assoc (Std.DTreeMap.Internal.Impl.toListModel l) (List.cons (Sigma.mk k v) (Std.DTreeMap.Internal.Impl.toListModel r)) (HAppend.hAppend (Std.DTreeMap.Internal.Impl.toListModel l) (List.cons (Sigma.mk k v) (Std.DTreeMap.Internal.Impl.toListModel r))))) (eq_self (HAppend.hAppend (Std.DTreeMap.Internal.Impl.toListModel l) (List.cons (Sigma.mk k v) (HAppend.hAppend (Std.DTreeMap.Internal.Impl.toListModel r) (HAppend.hAppend (Std.DTreeMap.Internal.Impl.toListModel l) (List.cons (Sigma.mk k v) (Std.DTreeMap.Internal.Impl.toListModel r))))))))))) (Eq.symm h) hr hlr) (fun h ↦ Eq.ndrec (fun {hr hlr} ↦ of_eq_true (Eq.trans (congrArg (Eq (HAppend.hAppend (Std.DTreeMap.Internal.Impl.toListModel l) (List.cons (Sigma.mk k v) (Std.DTreeMap.Internal.Impl.toListModel r)))) (List.append_nil (HAppend.hAppend (Std.DTreeMap.Internal.Impl.toListModel l) (List.cons (Sigma.mk k v) (Std.DTreeMap.Internal.Impl.toListModel r))))) (eq_self (HAppend.hAppend (Std.DTreeMap.Internal.Impl.toListModel l) (List.cons (Sigma.mk k v) (Std.DTreeMap.Internal.Impl.toListModel r)))))) (Eq.symm h) hr hlr) (Eq.refl r)) (Eq.symm h) hl hlr) (fun h ↦ Eq.ndrec (fun {hl hlr} ↦ Std.DTreeMap.Internal.Impl.casesOn r (fun size k v l r h ↦ Eq.ndrec (fun {hr hlr} ↦ of_eq_true (eq_self (HAppend.hAppend (Std.DTreeMap.Internal.Impl.toListModel l) (List.cons (Sigma.mk k v) (Std.DTreeMap.Internal.Impl.toListModel r))))) (Eq.symm h) hr hlr) (fun h ↦ Eq.ndrec (fun {hr hlr} ↦ of_eq_true (Eq.trans (congrArg (Eq (List.nil)) (List.append_nil (List.nil))) (eq_self (List.nil)))) (Eq.symm h) hr hlr) (Eq.refl r)) (Eq.symm h) hl hlr) (Eq.refl l)
has type
  (size : Nat) → (k : α) → (v : β k) → (l : Std.DTreeMap.Internal.Impl β) → (r : Std.DTreeMap.Internal.Impl β) → (fun x ↦ (hlb : Std.DTreeMap.Internal.Impl.Balanced (Std.DTreeMap.Internal.Impl.inner size k v x r)) → (hlr : Std.DTreeMap.Internal.Impl.BalanceLErasePrecond (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k v x r)) (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k v l r))) → (fun ll lr hlb hlr ↦ Std.DTreeMap.Internal.Impl β) x r hlb hlr) l → (fun x ↦ (hlb : Std.DTreeMap.Internal.Impl.Balanced (Std.DTreeMap.Internal.Impl.inner size k v x r)) → (hlr : Std.DTreeMap.Internal.Impl.BalanceLErasePrecond (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k v x r)) (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k v l r))) → (fun ll lr hlb hlr ↦ Std.DTreeMap.Internal.Impl β) x r hlb hlr) r → (hlb : Std.DTreeMap.Internal.Impl.Balanced (Std.DTreeMap.Internal.Impl.inner size k v (Std.DTreeMap.Internal.Impl.inner size k v l r) r)) → (hlr : Std.DTreeMap.Internal.Impl.BalanceLErasePrecond (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k v (Std.DTreeMap.Internal.Impl.inner size k v l r) r)) (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k v l r))) → (fun ll lr hlb hlr ↦ Std.DTreeMap.Internal.Impl β) (Std.DTreeMap.Internal.Impl.inner size k v l r) r hlb hlr
but is expected to have type
  (size : Nat) → (k : α) → (v : β k) → (l : Std.DTreeMap.Internal.Impl β) → (r : Std.DTreeMap.Internal.Impl β) → (fun x ↦ (hlb : Std.DTreeMap.Internal.Impl.Balanced (Std.DTreeMap.Internal.Impl.inner size k v x r)) → (hlr : Std.DTreeMap.Internal.Impl.BalanceLErasePrecond (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k v x r)) (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k v l r))) → (fun ll lr hlb hlr ↦ Std.DTreeMap.Internal.Impl β) x r hlb hlr) l → (fun x ↦ (hlb : Std.DTreeMap.Internal.Impl.Balanced (Std.DTreeMap.Internal.Impl.inner size k v x r)) → (hlr : Std.DTreeMap.Internal.Impl.BalanceLErasePrecond (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k v x r)) (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k v l r))) → (fun ll lr hlb hlr ↦ Std.DTreeMap.Internal.Impl β) x r hlb hlr) r → (fun x ↦ (hlb : Std.DTreeMap.Internal.Impl.Balanced (Std.DTreeMap.Internal.Impl.inner size k v x r)) → (hlr : Std.DTreeMap.Internal.Impl.BalanceLErasePrecond (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k v x r)) (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k v l r))) → (fun ll lr hlb hlr ↦ Std.DTreeMap.Internal.Impl β) x r hlb hlr) (Std.DTreeMap.Internal.Impl.inner size k v l r)
theorem Std.DTreeMap.Internal.Impl.alter_eq_alterₘ.{u, v} : ∀ {α : Type u}, ∀ {β : α → Type v}, ∀ [inst : Ord.{u} α], ∀ [inst : Std.TransOrd α], ∀ [inst : Std.LawfulEqOrd α], ∀ {t : Std.DTreeMap.Internal.Impl β}, ∀ {a : α}, ∀ {f : Option.{v} (β a) → Option.{v} (β a)}, ∀ (htb : Std.DTreeMap.Internal.Impl.Balanced t), Std.DTreeMap.Internal.Impl.Ordered t → Eq (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.alter a f t htb)) (Std.DTreeMap.Internal.Impl.alterₘ a f t htb) := fun {α β} [inst : Ord.{u} #1] [inst : Std.TransOrd #2] [inst : Std.LawfulEqOrd #3] {t a f} htb hto ↦ Eq.mpr (id (congrArg (fun _a ↦ Eq (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.alter a f t htb)) _a) (Std.DTreeMap.Internal.Impl.alterₘ.eq_1 a f t htb))) (Std.DTreeMap.Internal.Impl.rec (fun sz k v l r ihl ihr htb hto ↦ Eq.mpr (id (congrArg (fun _a ↦ Eq (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl _a) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) (Std.DTreeMap.Internal.Impl.inner sz k v l r) htb))) (Std.DTreeMap.Internal.Impl.alter.eq_2 a f sz k v l r htb))) (Eq.mpr (id (congrArg (fun _a ↦ Eq (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.alter.match_3.{(max u v) + 1} (fun x ↦ Std.DTreeMap.Internal.Impl.SizedBalancedTree.{u, v} α β (HSub.hSub (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner sz k v l r)) (OfNat.ofNat 1)) (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner sz k v l r)) (OfNat.ofNat 1))) (Ord.compare a k) (fun h ↦ Std.DTreeMap.Internal.Impl.alter.match_1 l (fun x ↦ Std.DTreeMap.Internal.Impl.SizedBalancedTree.{u, v} α β (HSub.hSub (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner sz k v l r)) (OfNat.ofNat 1)) (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner sz k v l r)) (OfNat.ofNat 1))) (Std.DTreeMap.Internal.Impl.alter a f l (Std.DTreeMap.Internal.Impl.minView._proof_9 sz k v l r htb)) fun d hd hd'₁ hd'₂ ↦ Std.DTreeMap.Internal.Impl.SizedBalancedTree.mk (Std.DTreeMap.Internal.Impl.balance k v d r (Std.DTreeMap.Internal.Impl.minView._proof_15 sz k v l r htb d hd) (Std.DTreeMap.Internal.Impl.minView._proof_11 sz k v l r htb) (Std.DTreeMap.Internal.Impl.alter._proof_1 sz k v l r htb d hd'₁ hd'₂)) (Std.DTreeMap.Internal.Impl.alter._proof_13 sz k v l r htb d hd hd'₁ hd'₂) (Std.DTreeMap.Internal.Impl.alter._proof_15 sz k v l r htb d hd hd'₁ hd'₂) (Std.DTreeMap.Internal.Impl.alter._proof_18 sz k v l r htb d hd hd'₁ hd'₂)) (fun h ↦ Std.DTreeMap.Internal.Impl.alter.match_1 r (fun x ↦ Std.DTreeMap.Internal.Impl.SizedBalancedTree.{u, v} α β (HSub.hSub (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner sz k v l r)) (OfNat.ofNat 1)) (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner sz k v l r)) (OfNat.ofNat 1))) (Std.DTreeMap.Internal.Impl.alter a f r (Std.DTreeMap.Internal.Impl.minView._proof_11 sz k v l r htb)) fun d hd hd'₁ hd'₂ ↦ Std.DTreeMap.Internal.Impl.SizedBalancedTree.mk (Std.DTreeMap.Internal.Impl.balance k v l d (Std.DTreeMap.Internal.Impl.minView._proof_9 sz k v l r htb) (Std.DTreeMap.Internal.Impl.minView._proof_15 sz k v l r htb d hd) (Std.DTreeMap.Internal.Impl.alter._proof_2 sz k v l r htb d hd'₁ hd'₂)) (Std.DTreeMap.Internal.Impl.alter._proof_20 sz k v l r htb d hd hd'₁ hd'₂) (Std.DTreeMap.Internal.Impl.alter._proof_22 sz k v l r htb d hd hd'₁ hd'₂) (Std.DTreeMap.Internal.Impl.alter._proof_25 sz k v l r htb d hd hd'₁ hd'₂)) fun h ↦ Std.DTreeMap.Internal.Impl.«getThenInsertIfNew?».match_1 a (fun x ↦ Std.DTreeMap.Internal.Impl.SizedBalancedTree.{u, v} α β (HSub.hSub (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner sz k v l r)) (OfNat.ofNat 1)) (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner sz k v l r)) (OfNat.ofNat 1))) (f (Option.some (cast (Std.DTreeMap.Internal.Impl.alter._proof_3 a k h) v))) (fun _ ↦ Std.DTreeMap.Internal.Impl.SizedBalancedTree.mk (Std.DTreeMap.Internal.Impl.glue l r (Std.DTreeMap.Internal.Impl.minView._proof_9 sz k v l r htb) (Std.DTreeMap.Internal.Impl.minView._proof_11 sz k v l r htb) (Std.DTreeMap.Internal.Impl.minView._proof_13 sz k v l r htb)) (Std.DTreeMap.Internal.Impl.erase._proof_34 sz k v l r htb) (Std.DTreeMap.Internal.Impl.erase._proof_36 sz k v l r htb) (Std.DTreeMap.Internal.Impl.alter._proof_28 sz k v l r htb)) fun v ↦ Std.DTreeMap.Internal.Impl.SizedBalancedTree.mk (Std.DTreeMap.Internal.Impl.inner sz a v l r) (Std.DTreeMap.Internal.Impl.alter._proof_30 a sz k v l r htb v) (Std.DTreeMap.Internal.Impl.alter._proof_33 a sz k v l r htb v) (Std.DTreeMap.Internal.Impl.alter._proof_35 a sz k v l r htb v))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl _a)) (Std.DTreeMap.Internal.Impl.updateCell.eq_2 a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) sz k v l r htb))) (_private.Std.Data.DTreeMap.Internal.WF.Lemmas.0.Std.DTreeMap.Internal.Impl.alter.match_3.splitter.{0} (fun x ↦ Eq (Ord.compare a k) x → Eq (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.alter.match_3.{(max u v) + 1} (fun x ↦ Std.DTreeMap.Internal.Impl.SizedBalancedTree.{u, v} α β (HSub.hSub (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner sz k v l r)) (OfNat.ofNat 1)) (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner sz k v l r)) (OfNat.ofNat 1))) (Ord.compare a k) (fun h ↦ Std.DTreeMap.Internal.Impl.alter.match_1 l (fun x ↦ Std.DTreeMap.Internal.Impl.SizedBalancedTree.{u, v} α β (HSub.hSub (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner sz k v l r)) (OfNat.ofNat 1)) (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner sz k v l r)) (OfNat.ofNat 1))) (Std.DTreeMap.Internal.Impl.alter a f l (Std.DTreeMap.Internal.Impl.minView._proof_9 sz k v l r htb)) fun d hd hd'₁ hd'₂ ↦ Std.DTreeMap.Internal.Impl.SizedBalancedTree.mk (Std.DTreeMap.Internal.Impl.balance k v d r (Std.DTreeMap.Internal.Impl.minView._proof_15 sz k v l r htb d hd) (Std.DTreeMap.Internal.Impl.minView._proof_11 sz k v l r htb) (Std.DTreeMap.Internal.Impl.alter._proof_1 sz k v l r htb d hd'₁ hd'₂)) (Std.DTreeMap.Internal.Impl.alter._proof_13 sz k v l r htb d hd hd'₁ hd'₂) (Std.DTreeMap.Internal.Impl.alter._proof_15 sz k v l r htb d hd hd'₁ hd'₂) (Std.DTreeMap.Internal.Impl.alter._proof_18 sz k v l r htb d hd hd'₁ hd'₂)) (fun h ↦ Std.DTreeMap.Internal.Impl.alter.match_1 r (fun x ↦ Std.DTreeMap.Internal.Impl.SizedBalancedTree.{u, v} α β (HSub.hSub (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner sz k v l r)) (OfNat.ofNat 1)) (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner sz k v l r)) (OfNat.ofNat 1))) (Std.DTreeMap.Internal.Impl.alter a f r (Std.DTreeMap.Internal.Impl.minView._proof_11 sz k v l r htb)) fun d hd hd'₁ hd'₂ ↦ Std.DTreeMap.Internal.Impl.SizedBalancedTree.mk (Std.DTreeMap.Internal.Impl.balance k v l d (Std.DTreeMap.Internal.Impl.minView._proof_9 sz k v l r htb) (Std.DTreeMap.Internal.Impl.minView._proof_15 sz k v l r htb d hd) (Std.DTreeMap.Internal.Impl.alter._proof_2 sz k v l r htb d hd'₁ hd'₂)) (Std.DTreeMap.Internal.Impl.alter._proof_20 sz k v l r htb d hd hd'₁ hd'₂) (Std.DTreeMap.Internal.Impl.alter._proof_22 sz k v l r htb d hd hd'₁ hd'₂) (Std.DTreeMap.Internal.Impl.alter._proof_25 sz k v l r htb d hd hd'₁ hd'₂)) fun h ↦ Std.DTreeMap.Internal.Impl.«getThenInsertIfNew?».match_1 a (fun x ↦ Std.DTreeMap.Internal.Impl.SizedBalancedTree.{u, v} α β (HSub.hSub (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner sz k v l r)) (OfNat.ofNat 1)) (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner sz k v l r)) (OfNat.ofNat 1))) (f (Option.some (cast (Std.DTreeMap.Internal.Impl.alter._proof_3 a k (Eq.trans (Eq.refl (Ord.compare a k)) h)) v))) (fun _ ↦ Std.DTreeMap.Internal.Impl.SizedBalancedTree.mk (Std.DTreeMap.Internal.Impl.glue l r (Std.DTreeMap.Internal.Impl.minView._proof_9 sz k v l r htb) (Std.DTreeMap.Internal.Impl.minView._proof_11 sz k v l r htb) (Std.DTreeMap.Internal.Impl.minView._proof_13 sz k v l r htb)) (Std.DTreeMap.Internal.Impl.erase._proof_34 sz k v l r htb) (Std.DTreeMap.Internal.Impl.erase._proof_36 sz k v l r htb) (Std.DTreeMap.Internal.Impl.alter._proof_28 sz k v l r htb)) fun v ↦ Std.DTreeMap.Internal.Impl.SizedBalancedTree.mk (Std.DTreeMap.Internal.Impl.inner sz a v l r) (Std.DTreeMap.Internal.Impl.alter._proof_30 a sz k v l r htb v) (Std.DTreeMap.Internal.Impl.alter._proof_33 a sz k v l r htb v) (Std.DTreeMap.Internal.Impl.alter._proof_35 a sz k v l r htb v))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.applyPartition.go.match_1.{(max u v) + 1} (fun x ↦ Std.DTreeMap.Internal.Impl.SizedBalancedTree.{u, v} α β (HSub.hSub (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner sz k v l r)) (OfNat.ofNat 1)) (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner sz k v l r)) (OfNat.ofNat 1))) (Ord.compare a k) (fun h ↦ Std.DTreeMap.Internal.Impl.updateCell.match_3 l (fun x ↦ Std.DTreeMap.Internal.Impl.SizedBalancedTree.{u, v} α β (HSub.hSub (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner sz k v l r)) (OfNat.ofNat 1)) (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner sz k v l r)) (OfNat.ofNat 1))) (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) l (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb)) fun newL h₁ h₂ h₃ ↦ Std.DTreeMap.Internal.Impl.SizedBalancedTree.mk (Std.DTreeMap.Internal.Impl.balance k v newL r (Std.DTreeMap.Internal.Impl.updateCell._proof_27 sz k v l r htb newL h₁) (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb) (Std.DTreeMap.Internal.Impl.updateCell._proof_32 sz k v l r htb newL h₂ h₃)) (Std.DTreeMap.Internal.Impl.updateCell._proof_34 sz k v l r htb newL h₁ h₂ h₃) (Std.DTreeMap.Internal.Impl.updateCell._proof_37 sz k v l r htb newL h₁ h₂ h₃) (Std.DTreeMap.Internal.Impl.updateCell._proof_40 sz k v l r htb newL h₁ h₂ h₃)) (fun h ↦ Std.DTreeMap.Internal.Impl.updateCell.match_1 (fun x ↦ Std.DTreeMap.Internal.Impl.SizedBalancedTree.{u, v} α β (HSub.hSub (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner sz k v l r)) (OfNat.ofNat 1)) (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner sz k v l r)) (OfNat.ofNat 1))) (Std.DTreeMap.Internal.Cell.inner (Std.DTreeMap.Internal.Cell.alter f (Std.DTreeMap.Internal.Cell.ofEq k v fun [Std.OrientedOrd α] ↦ h))) (fun _ ↦ Std.DTreeMap.Internal.Impl.SizedBalancedTree.mk (Std.DTreeMap.Internal.Impl.glue l r (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb) (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb) (Std.DTreeMap.Internal.Impl.updateCell._proof_42 sz k v l r htb)) (Std.DTreeMap.Internal.Impl.updateCell._proof_44 sz k v l r htb) (Std.DTreeMap.Internal.Impl.updateCell._proof_47 sz k v l r htb) (Std.DTreeMap.Internal.Impl.updateCell._proof_50 sz k v l r htb)) fun ky' y' ↦ Std.DTreeMap.Internal.Impl.SizedBalancedTree.mk (Std.DTreeMap.Internal.Impl.inner sz ky' y' l r) (Std.DTreeMap.Internal.Impl.updateCell._proof_52 sz k v l r htb ky' y') (Std.DTreeMap.Internal.Impl.updateCell._proof_55 sz k v l r htb ky' y') (Std.DTreeMap.Internal.Impl.updateCell._proof_58 sz k v l r htb ky' y')) fun h ↦ Std.DTreeMap.Internal.Impl.updateCell.match_3 r (fun x ↦ Std.DTreeMap.Internal.Impl.SizedBalancedTree.{u, v} α β (HSub.hSub (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner sz k v l r)) (OfNat.ofNat 1)) (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner sz k v l r)) (OfNat.ofNat 1))) (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) r (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb)) fun newR h₁ h₂ h₃ ↦ Std.DTreeMap.Internal.Impl.SizedBalancedTree.mk (Std.DTreeMap.Internal.Impl.balance k v l newR (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb) (Std.DTreeMap.Internal.Impl.updateCell._proof_27 sz k v l r htb newR h₁) (Std.DTreeMap.Internal.Impl.updateCell._proof_61 sz k v l r htb newR h₂ h₃)) (Std.DTreeMap.Internal.Impl.updateCell._proof_63 sz k v l r htb newR h₁ h₂ h₃) (Std.DTreeMap.Internal.Impl.updateCell._proof_66 sz k v l r htb newR h₁ h₂ h₃) (Std.DTreeMap.Internal.Impl.updateCell._proof_69 sz k v l r htb newR h₁ h₂ h₃)))) (Ord.compare a k) (fun h h ↦ Eq.ndrec (fun heq ↦ id (Eq.mpr (id (congrArg (Eq (Std.DTreeMap.Internal.Impl.balance k v (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.alter a f l (Std.DTreeMap.Internal.Impl.minView._proof_9 sz k v l r htb))) r (Std.DTreeMap.Internal.Impl.minView._proof_15 sz k v l r htb (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.alter a f l (Std.DTreeMap.Internal.Impl.minView._proof_9 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.balanced_impl (Std.DTreeMap.Internal.Impl.alter a f l (Std.DTreeMap.Internal.Impl.minView._proof_9 sz k v l r htb)))) (Std.DTreeMap.Internal.Impl.minView._proof_11 sz k v l r htb) (Std.DTreeMap.Internal.Impl.alter._proof_1 sz k v l r htb (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.alter a f l (Std.DTreeMap.Internal.Impl.minView._proof_9 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.lb_le_size_impl (Std.DTreeMap.Internal.Impl.alter a f l (Std.DTreeMap.Internal.Impl.minView._proof_9 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.size_impl_le_ub (Std.DTreeMap.Internal.Impl.alter a f l (Std.DTreeMap.Internal.Impl.minView._proof_9 sz k v l r htb)))))) (congrArg (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl) (Std.DTreeMap.Internal.Impl.applyPartition.go.match_1.congr heq (fun h ↦ Eq.refl (Std.DTreeMap.Internal.Impl.SizedBalancedTree.mk (Std.DTreeMap.Internal.Impl.balance k v (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) l (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb))) r (Std.DTreeMap.Internal.Impl.updateCell._proof_27 sz k v l r htb (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) l (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.balanced_impl (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) l (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb)))) (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb) (Std.DTreeMap.Internal.Impl.updateCell._proof_32 sz k v l r htb (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) l (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.lb_le_size_impl (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) l (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.size_impl_le_ub (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) l (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb))))) (Std.DTreeMap.Internal.Impl.updateCell._proof_34 sz k v l r htb (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) l (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.balanced_impl (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) l (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.lb_le_size_impl (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) l (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.size_impl_le_ub (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) l (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb)))) (Std.DTreeMap.Internal.Impl.updateCell._proof_37 sz k v l r htb (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) l (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.balanced_impl (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) l (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.lb_le_size_impl (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) l (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.size_impl_le_ub (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) l (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb)))) (Std.DTreeMap.Internal.Impl.updateCell._proof_40 sz k v l r htb (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) l (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.balanced_impl (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) l (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.lb_le_size_impl (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) l (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.size_impl_le_ub (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) l (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb)))))) (fun h ↦ Eq.refl (Std.DTreeMap.Internal.Impl.updateCell.match_1 (fun x ↦ Std.DTreeMap.Internal.Impl.SizedBalancedTree.{u, v} α β (HSub.hSub (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner sz k v l r)) (OfNat.ofNat 1)) (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner sz k v l r)) (OfNat.ofNat 1))) (Std.DTreeMap.Internal.Cell.inner (Std.DTreeMap.Internal.Cell.alter f (Std.DTreeMap.Internal.Cell.ofEq k v fun [Std.OrientedOrd α] ↦ Eq.trans heq h))) (fun _ ↦ Std.DTreeMap.Internal.Impl.SizedBalancedTree.mk (Std.DTreeMap.Internal.Impl.glue l r (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb) (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb) (Std.DTreeMap.Internal.Impl.updateCell._proof_42 sz k v l r htb)) (Std.DTreeMap.Internal.Impl.updateCell._proof_44 sz k v l r htb) (Std.DTreeMap.Internal.Impl.updateCell._proof_47 sz k v l r htb) (Std.DTreeMap.Internal.Impl.updateCell._proof_50 sz k v l r htb)) fun ky' y' ↦ Std.DTreeMap.Internal.Impl.SizedBalancedTree.mk (Std.DTreeMap.Internal.Impl.inner sz ky' y' l r) (Std.DTreeMap.Internal.Impl.updateCell._proof_52 sz k v l r htb ky' y') (Std.DTreeMap.Internal.Impl.updateCell._proof_55 sz k v l r htb ky' y') (Std.DTreeMap.Internal.Impl.updateCell._proof_58 sz k v l r htb ky' y'))) fun h ↦ Eq.refl (Std.DTreeMap.Internal.Impl.SizedBalancedTree.mk (Std.DTreeMap.Internal.Impl.balance k v l (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) r (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb) (Std.DTreeMap.Internal.Impl.updateCell._proof_27 sz k v l r htb (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) r (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.balanced_impl (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) r (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb)))) (Std.DTreeMap.Internal.Impl.updateCell._proof_61 sz k v l r htb (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) r (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.lb_le_size_impl (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) r (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.size_impl_le_ub (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) r (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb))))) (Std.DTreeMap.Internal.Impl.updateCell._proof_63 sz k v l r htb (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) r (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.balanced_impl (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) r (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.lb_le_size_impl (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) r (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.size_impl_le_ub (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) r (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb)))) (Std.DTreeMap.Internal.Impl.updateCell._proof_66 sz k v l r htb (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) r (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.balanced_impl (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) r (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.lb_le_size_impl (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) r (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.size_impl_le_ub (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) r (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb)))) (Std.DTreeMap.Internal.Impl.updateCell._proof_69 sz k v l r htb (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) r (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.balanced_impl (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) r (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.lb_le_size_impl (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) r (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.size_impl_le_ub (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) r (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb))))))))) (of_eq_true (Eq.trans (congrFun' (congrArg (Eq) (Std.DTreeMap.Internal.Impl.balance.congr_simp k v v (Eq.refl v) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.alter a f l (Std.DTreeMap.Internal.Impl.minView._proof_9 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) l (Std.DTreeMap.Internal.Impl.Balanced.left htb))) (ihl (Std.DTreeMap.Internal.Impl.Balanced.left htb) (Std.DTreeMap.Internal.Impl.Ordered.left hto)) r r (Eq.refl r) (Std.DTreeMap.Internal.Impl.minView._proof_15 sz k v l r htb (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.alter a f l (Std.DTreeMap.Internal.Impl.minView._proof_9 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.balanced_impl (Std.DTreeMap.Internal.Impl.alter a f l (Std.DTreeMap.Internal.Impl.minView._proof_9 sz k v l r htb)))) (Std.DTreeMap.Internal.Impl.minView._proof_11 sz k v l r htb) (Std.DTreeMap.Internal.Impl.alter._proof_1 sz k v l r htb (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.alter a f l (Std.DTreeMap.Internal.Impl.minView._proof_9 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.lb_le_size_impl (Std.DTreeMap.Internal.Impl.alter a f l (Std.DTreeMap.Internal.Impl.minView._proof_9 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.size_impl_le_ub (Std.DTreeMap.Internal.Impl.alter a f l (Std.DTreeMap.Internal.Impl.minView._proof_9 sz k v l r htb)))))) (Std.DTreeMap.Internal.Impl.balance k v (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) l (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb))) r (Std.DTreeMap.Internal.Impl.updateCell._proof_27 sz k v l r htb (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) l (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.balanced_impl (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) l (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb)))) (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb) (Std.DTreeMap.Internal.Impl.updateCell._proof_32 sz k v l r htb (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) l (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.lb_le_size_impl (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) l (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.size_impl_le_ub (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) l (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb)))))) (eq_self (Std.DTreeMap.Internal.Impl.balance k v (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) l (Std.DTreeMap.Internal.Impl.Balanced.left htb))) r (Eq.ndrec (Std.DTreeMap.Internal.Impl.minView._proof_15 sz k v l r htb (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.alter a f l (Std.DTreeMap.Internal.Impl.minView._proof_9 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.balanced_impl (Std.DTreeMap.Internal.Impl.alter a f l (Std.DTreeMap.Internal.Impl.minView._proof_9 sz k v l r htb)))) (ihl (Std.DTreeMap.Internal.Impl.Balanced.left htb) (Std.DTreeMap.Internal.Impl.Ordered.left hto))) (Std.DTreeMap.Internal.Impl.minView._proof_11 sz k v l r htb) (Eq.ndrec (Eq.ndrec (Std.DTreeMap.Internal.Impl.alter._proof_1 sz k v l r htb (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.alter a f l (Std.DTreeMap.Internal.Impl.minView._proof_9 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.lb_le_size_impl (Std.DTreeMap.Internal.Impl.alter a f l (Std.DTreeMap.Internal.Impl.minView._proof_9 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.size_impl_le_ub (Std.DTreeMap.Internal.Impl.alter a f l (Std.DTreeMap.Internal.Impl.minView._proof_9 sz k v l r htb)))) (Eq.refl r)) (ihl (Std.DTreeMap.Internal.Impl.Balanced.left htb) (Std.DTreeMap.Internal.Impl.Ordered.left hto))))))))) (Eq.symm h) (Eq.refl (Ord.compare a k))) (fun h h ↦ Eq.ndrec (fun heq ↦ id (Eq.mpr (id (congrArg (Eq (Std.DTreeMap.Internal.Impl.balance k v l (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.alter a f r (Std.DTreeMap.Internal.Impl.minView._proof_11 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.minView._proof_9 sz k v l r htb) (Std.DTreeMap.Internal.Impl.minView._proof_15 sz k v l r htb (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.alter a f r (Std.DTreeMap.Internal.Impl.minView._proof_11 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.balanced_impl (Std.DTreeMap.Internal.Impl.alter a f r (Std.DTreeMap.Internal.Impl.minView._proof_11 sz k v l r htb)))) (Std.DTreeMap.Internal.Impl.alter._proof_2 sz k v l r htb (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.alter a f r (Std.DTreeMap.Internal.Impl.minView._proof_11 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.lb_le_size_impl (Std.DTreeMap.Internal.Impl.alter a f r (Std.DTreeMap.Internal.Impl.minView._proof_11 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.size_impl_le_ub (Std.DTreeMap.Internal.Impl.alter a f r (Std.DTreeMap.Internal.Impl.minView._proof_11 sz k v l r htb)))))) (congrArg (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl) (Std.DTreeMap.Internal.Impl.applyPartition.go.match_1.congr heq (fun h ↦ Eq.refl (Std.DTreeMap.Internal.Impl.SizedBalancedTree.mk (Std.DTreeMap.Internal.Impl.balance k v (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) l (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb))) r (Std.DTreeMap.Internal.Impl.updateCell._proof_27 sz k v l r htb (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) l (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.balanced_impl (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) l (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb)))) (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb) (Std.DTreeMap.Internal.Impl.updateCell._proof_32 sz k v l r htb (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) l (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.lb_le_size_impl (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) l (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.size_impl_le_ub (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) l (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb))))) (Std.DTreeMap.Internal.Impl.updateCell._proof_34 sz k v l r htb (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) l (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.balanced_impl (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) l (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.lb_le_size_impl (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) l (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.size_impl_le_ub (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) l (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb)))) (Std.DTreeMap.Internal.Impl.updateCell._proof_37 sz k v l r htb (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) l (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.balanced_impl (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) l (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.lb_le_size_impl (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) l (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.size_impl_le_ub (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) l (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb)))) (Std.DTreeMap.Internal.Impl.updateCell._proof_40 sz k v l r htb (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) l (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.balanced_impl (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) l (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.lb_le_size_impl (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) l (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.size_impl_le_ub (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) l (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb)))))) (fun h ↦ Eq.refl (Std.DTreeMap.Internal.Impl.updateCell.match_1 (fun x ↦ Std.DTreeMap.Internal.Impl.SizedBalancedTree.{u, v} α β (HSub.hSub (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner sz k v l r)) (OfNat.ofNat 1)) (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner sz k v l r)) (OfNat.ofNat 1))) (Std.DTreeMap.Internal.Cell.inner (Std.DTreeMap.Internal.Cell.alter f (Std.DTreeMap.Internal.Cell.ofEq k v fun [Std.OrientedOrd α] ↦ Eq.trans heq h))) (fun _ ↦ Std.DTreeMap.Internal.Impl.SizedBalancedTree.mk (Std.DTreeMap.Internal.Impl.glue l r (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb) (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb) (Std.DTreeMap.Internal.Impl.updateCell._proof_42 sz k v l r htb)) (Std.DTreeMap.Internal.Impl.updateCell._proof_44 sz k v l r htb) (Std.DTreeMap.Internal.Impl.updateCell._proof_47 sz k v l r htb) (Std.DTreeMap.Internal.Impl.updateCell._proof_50 sz k v l r htb)) fun ky' y' ↦ Std.DTreeMap.Internal.Impl.SizedBalancedTree.mk (Std.DTreeMap.Internal.Impl.inner sz ky' y' l r) (Std.DTreeMap.Internal.Impl.updateCell._proof_52 sz k v l r htb ky' y') (Std.DTreeMap.Internal.Impl.updateCell._proof_55 sz k v l r htb ky' y') (Std.DTreeMap.Internal.Impl.updateCell._proof_58 sz k v l r htb ky' y'))) fun h ↦ Eq.refl (Std.DTreeMap.Internal.Impl.SizedBalancedTree.mk (Std.DTreeMap.Internal.Impl.balance k v l (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) r (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb) (Std.DTreeMap.Internal.Impl.updateCell._proof_27 sz k v l r htb (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) r (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.balanced_impl (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) r (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb)))) (Std.DTreeMap.Internal.Impl.updateCell._proof_61 sz k v l r htb (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) r (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.lb_le_size_impl (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) r (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.size_impl_le_ub (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) r (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb))))) (Std.DTreeMap.Internal.Impl.updateCell._proof_63 sz k v l r htb (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) r (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.balanced_impl (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) r (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.lb_le_size_impl (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) r (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.size_impl_le_ub (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) r (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb)))) (Std.DTreeMap.Internal.Impl.updateCell._proof_66 sz k v l r htb (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) r (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.balanced_impl (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) r (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.lb_le_size_impl (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) r (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.size_impl_le_ub (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) r (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb)))) (Std.DTreeMap.Internal.Impl.updateCell._proof_69 sz k v l r htb (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) r (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.balanced_impl (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) r (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.lb_le_size_impl (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) r (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.size_impl_le_ub (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) r (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb))))))))) (of_eq_true (Eq.trans (congrFun' (congrArg (Eq) (Std.DTreeMap.Internal.Impl.balance.congr_simp k v v (Eq.refl v) l l (Eq.refl l) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.alter a f r (Std.DTreeMap.Internal.Impl.minView._proof_11 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) r (Std.DTreeMap.Internal.Impl.Balanced.right htb))) (ihr (Std.DTreeMap.Internal.Impl.Balanced.right htb) (Std.DTreeMap.Internal.Impl.Ordered.right hto)) (Std.DTreeMap.Internal.Impl.minView._proof_9 sz k v l r htb) (Std.DTreeMap.Internal.Impl.minView._proof_15 sz k v l r htb (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.alter a f r (Std.DTreeMap.Internal.Impl.minView._proof_11 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.balanced_impl (Std.DTreeMap.Internal.Impl.alter a f r (Std.DTreeMap.Internal.Impl.minView._proof_11 sz k v l r htb)))) (Std.DTreeMap.Internal.Impl.alter._proof_2 sz k v l r htb (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.alter a f r (Std.DTreeMap.Internal.Impl.minView._proof_11 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.lb_le_size_impl (Std.DTreeMap.Internal.Impl.alter a f r (Std.DTreeMap.Internal.Impl.minView._proof_11 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.size_impl_le_ub (Std.DTreeMap.Internal.Impl.alter a f r (Std.DTreeMap.Internal.Impl.minView._proof_11 sz k v l r htb)))))) (Std.DTreeMap.Internal.Impl.balance k v l (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) r (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb) (Std.DTreeMap.Internal.Impl.updateCell._proof_27 sz k v l r htb (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) r (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.balanced_impl (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) r (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb)))) (Std.DTreeMap.Internal.Impl.updateCell._proof_61 sz k v l r htb (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) r (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.lb_le_size_impl (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) r (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.size_impl_le_ub (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) r (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb)))))) (eq_self (Std.DTreeMap.Internal.Impl.balance k v l (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) r (Std.DTreeMap.Internal.Impl.Balanced.right htb))) (Std.DTreeMap.Internal.Impl.minView._proof_9 sz k v l r htb) (Eq.ndrec (Std.DTreeMap.Internal.Impl.minView._proof_15 sz k v l r htb (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.alter a f r (Std.DTreeMap.Internal.Impl.minView._proof_11 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.balanced_impl (Std.DTreeMap.Internal.Impl.alter a f r (Std.DTreeMap.Internal.Impl.minView._proof_11 sz k v l r htb)))) (ihr (Std.DTreeMap.Internal.Impl.Balanced.right htb) (Std.DTreeMap.Internal.Impl.Ordered.right hto))) (Eq.ndrec (Std.DTreeMap.Internal.Impl.alter._proof_2 sz k v l r htb (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.alter a f r (Std.DTreeMap.Internal.Impl.minView._proof_11 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.lb_le_size_impl (Std.DTreeMap.Internal.Impl.alter a f r (Std.DTreeMap.Internal.Impl.minView._proof_11 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.size_impl_le_ub (Std.DTreeMap.Internal.Impl.alter a f r (Std.DTreeMap.Internal.Impl.minView._proof_11 sz k v l r htb)))) (ihr (Std.DTreeMap.Internal.Impl.Balanced.right htb) (Std.DTreeMap.Internal.Impl.Ordered.right hto))))))))) (Eq.symm h) (Eq.refl (Ord.compare a k))) (fun h h ↦ Eq.ndrec (fun heq ↦ id (Eq.mpr (id (congrArg (Eq (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.«getThenInsertIfNew?».match_1 a (fun x ↦ Std.DTreeMap.Internal.Impl.SizedBalancedTree.{u, v} α β (HSub.hSub (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner sz k v l r)) (OfNat.ofNat 1)) (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner sz k v l r)) (OfNat.ofNat 1))) (f (Option.some (cast (Std.DTreeMap.Internal.Impl.alter._proof_3 a k (Eq.trans heq (Eq.refl Ordering.eq))) v))) (fun _ ↦ Std.DTreeMap.Internal.Impl.SizedBalancedTree.mk (Std.DTreeMap.Internal.Impl.glue l r (Std.DTreeMap.Internal.Impl.minView._proof_9 sz k v l r htb) (Std.DTreeMap.Internal.Impl.minView._proof_11 sz k v l r htb) (Std.DTreeMap.Internal.Impl.minView._proof_13 sz k v l r htb)) (Std.DTreeMap.Internal.Impl.erase._proof_34 sz k v l r htb) (Std.DTreeMap.Internal.Impl.erase._proof_36 sz k v l r htb) (Std.DTreeMap.Internal.Impl.alter._proof_28 sz k v l r htb)) fun v ↦ Std.DTreeMap.Internal.Impl.SizedBalancedTree.mk (Std.DTreeMap.Internal.Impl.inner sz a v l r) (Std.DTreeMap.Internal.Impl.alter._proof_30 a sz k v l r htb v) (Std.DTreeMap.Internal.Impl.alter._proof_33 a sz k v l r htb v) (Std.DTreeMap.Internal.Impl.alter._proof_35 a sz k v l r htb v)))) (congrArg (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl) (Std.DTreeMap.Internal.Impl.applyPartition.go.match_1.congr heq (fun h ↦ Eq.refl (Std.DTreeMap.Internal.Impl.SizedBalancedTree.mk (Std.DTreeMap.Internal.Impl.balance k v (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) l (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb))) r (Std.DTreeMap.Internal.Impl.updateCell._proof_27 sz k v l r htb (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) l (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.balanced_impl (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) l (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb)))) (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb) (Std.DTreeMap.Internal.Impl.updateCell._proof_32 sz k v l r htb (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) l (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.lb_le_size_impl (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) l (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.size_impl_le_ub (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) l (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb))))) (Std.DTreeMap.Internal.Impl.updateCell._proof_34 sz k v l r htb (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) l (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.balanced_impl (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) l (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.lb_le_size_impl (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) l (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.size_impl_le_ub (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) l (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb)))) (Std.DTreeMap.Internal.Impl.updateCell._proof_37 sz k v l r htb (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) l (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.balanced_impl (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) l (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.lb_le_size_impl (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) l (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.size_impl_le_ub (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) l (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb)))) (Std.DTreeMap.Internal.Impl.updateCell._proof_40 sz k v l r htb (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) l (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.balanced_impl (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) l (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.lb_le_size_impl (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) l (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.size_impl_le_ub (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) l (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb)))))) (fun h ↦ Eq.refl (Std.DTreeMap.Internal.Impl.updateCell.match_1 (fun x ↦ Std.DTreeMap.Internal.Impl.SizedBalancedTree.{u, v} α β (HSub.hSub (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner sz k v l r)) (OfNat.ofNat 1)) (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner sz k v l r)) (OfNat.ofNat 1))) (Std.DTreeMap.Internal.Cell.inner (Std.DTreeMap.Internal.Cell.alter f (Std.DTreeMap.Internal.Cell.ofEq k v fun [Std.OrientedOrd α] ↦ Eq.trans heq h))) (fun _ ↦ Std.DTreeMap.Internal.Impl.SizedBalancedTree.mk (Std.DTreeMap.Internal.Impl.glue l r (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb) (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb) (Std.DTreeMap.Internal.Impl.updateCell._proof_42 sz k v l r htb)) (Std.DTreeMap.Internal.Impl.updateCell._proof_44 sz k v l r htb) (Std.DTreeMap.Internal.Impl.updateCell._proof_47 sz k v l r htb) (Std.DTreeMap.Internal.Impl.updateCell._proof_50 sz k v l r htb)) fun ky' y' ↦ Std.DTreeMap.Internal.Impl.SizedBalancedTree.mk (Std.DTreeMap.Internal.Impl.inner sz ky' y' l r) (Std.DTreeMap.Internal.Impl.updateCell._proof_52 sz k v l r htb ky' y') (Std.DTreeMap.Internal.Impl.updateCell._proof_55 sz k v l r htb ky' y') (Std.DTreeMap.Internal.Impl.updateCell._proof_58 sz k v l r htb ky' y'))) fun h ↦ Eq.refl (Std.DTreeMap.Internal.Impl.SizedBalancedTree.mk (Std.DTreeMap.Internal.Impl.balance k v l (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) r (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb) (Std.DTreeMap.Internal.Impl.updateCell._proof_27 sz k v l r htb (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) r (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.balanced_impl (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) r (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb)))) (Std.DTreeMap.Internal.Impl.updateCell._proof_61 sz k v l r htb (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) r (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.lb_le_size_impl (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) r (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.size_impl_le_ub (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) r (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb))))) (Std.DTreeMap.Internal.Impl.updateCell._proof_63 sz k v l r htb (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) r (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.balanced_impl (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) r (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.lb_le_size_impl (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) r (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.size_impl_le_ub (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) r (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb)))) (Std.DTreeMap.Internal.Impl.updateCell._proof_66 sz k v l r htb (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) r (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.balanced_impl (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) r (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.lb_le_size_impl (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) r (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.size_impl_le_ub (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) r (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb)))) (Std.DTreeMap.Internal.Impl.updateCell._proof_69 sz k v l r htb (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) r (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.balanced_impl (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) r (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.lb_le_size_impl (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) r (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.size_impl_le_ub (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) r (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb))))))))) (Eq.symm (id (Option.casesOn (f (Option.some (Eq.rec v (Std.DTreeMap.Internal.Cell.alter._proof_1 (Std.DTreeMap.Internal.Cell.ofEq k v fun [Std.OrientedOrd α] ↦ Eq.trans heq (Eq.refl Ordering.eq)) k v (Eq.refl (Option.some (Sigma.mk k v))))))) (fun h ↦ Eq.ndrec (fun h₁ ↦ Eq.refl (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.updateCell.match_1 (fun x ↦ Std.DTreeMap.Internal.Impl.SizedBalancedTree.{u, v} α β (HSub.hSub (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner sz k v l r)) (OfNat.ofNat 1)) (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner sz k v l r)) (OfNat.ofNat 1))) (Std.DTreeMap.Internal.Cell.inner (Std.DTreeMap.Internal.Cell.ofOption.match_1 a (fun «v?» ↦ Std.DTreeMap.Internal.Cell α β (Ord.compare a)) (Option.none) (fun _ ↦ Std.DTreeMap.Internal.Cell.empty) fun v ↦ Std.DTreeMap.Internal.Cell.of a v)) (fun _ ↦ Std.DTreeMap.Internal.Impl.SizedBalancedTree.mk (Std.DTreeMap.Internal.Impl.glue l r (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb) (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb) (Std.DTreeMap.Internal.Impl.updateCell._proof_42 sz k v l r htb)) (Std.DTreeMap.Internal.Impl.updateCell._proof_44 sz k v l r htb) (Std.DTreeMap.Internal.Impl.updateCell._proof_47 sz k v l r htb) (Std.DTreeMap.Internal.Impl.updateCell._proof_50 sz k v l r htb)) fun ky' y' ↦ Std.DTreeMap.Internal.Impl.SizedBalancedTree.mk (Std.DTreeMap.Internal.Impl.inner sz ky' y' l r) (Std.DTreeMap.Internal.Impl.updateCell._proof_52 sz k v l r htb ky' y') (Std.DTreeMap.Internal.Impl.updateCell._proof_55 sz k v l r htb ky' y') (Std.DTreeMap.Internal.Impl.updateCell._proof_58 sz k v l r htb ky' y')))) (Eq.symm h) (Eq.refl (f (Option.some (Eq.rec v (Std.DTreeMap.Internal.Cell.alter._proof_1 (Std.DTreeMap.Internal.Cell.ofEq k v fun [Std.OrientedOrd α] ↦ Eq.trans heq (Eq.refl Ordering.eq)) k v (Eq.refl (Option.some (Sigma.mk k v))))))))) (fun val h ↦ Eq.ndrec (fun h₁ ↦ Eq.refl (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.updateCell.match_1 (fun x ↦ Std.DTreeMap.Internal.Impl.SizedBalancedTree.{u, v} α β (HSub.hSub (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner sz k v l r)) (OfNat.ofNat 1)) (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner sz k v l r)) (OfNat.ofNat 1))) (Std.DTreeMap.Internal.Cell.inner (Std.DTreeMap.Internal.Cell.ofOption.match_1 a (fun «v?» ↦ Std.DTreeMap.Internal.Cell α β (Ord.compare a)) (Option.some val) (fun _ ↦ Std.DTreeMap.Internal.Cell.empty) fun v ↦ Std.DTreeMap.Internal.Cell.of a v)) (fun _ ↦ Std.DTreeMap.Internal.Impl.SizedBalancedTree.mk (Std.DTreeMap.Internal.Impl.glue l r (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb) (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb) (Std.DTreeMap.Internal.Impl.updateCell._proof_42 sz k v l r htb)) (Std.DTreeMap.Internal.Impl.updateCell._proof_44 sz k v l r htb) (Std.DTreeMap.Internal.Impl.updateCell._proof_47 sz k v l r htb) (Std.DTreeMap.Internal.Impl.updateCell._proof_50 sz k v l r htb)) fun ky' y' ↦ Std.DTreeMap.Internal.Impl.SizedBalancedTree.mk (Std.DTreeMap.Internal.Impl.inner sz ky' y' l r) (Std.DTreeMap.Internal.Impl.updateCell._proof_52 sz k v l r htb ky' y') (Std.DTreeMap.Internal.Impl.updateCell._proof_55 sz k v l r htb ky' y') (Std.DTreeMap.Internal.Impl.updateCell._proof_58 sz k v l r htb ky' y')))) (Eq.symm h) (Eq.refl (f (Option.some (Eq.rec v (Std.DTreeMap.Internal.Cell.alter._proof_1 (Std.DTreeMap.Internal.Cell.ofEq k v fun [Std.OrientedOrd α] ↦ Eq.trans heq (Eq.refl Ordering.eq)) k v (Eq.refl (Option.some (Sigma.mk k v))))))))) (Eq.refl (f (Option.some (Eq.rec v (Std.DTreeMap.Internal.Cell.alter._proof_1 (Std.DTreeMap.Internal.Cell.ofEq k v fun [Std.OrientedOrd α] ↦ Eq.trans heq (Eq.refl Ordering.eq)) k v (Eq.refl (Option.some (Sigma.mk k v))))))))))))) (Eq.symm h) (Eq.refl (Ord.compare a k))) (Eq.refl (Ord.compare a k))))) (fun htb hto ↦ id (Option.casesOn (f (Option.none)) (fun h ↦ Eq.ndrec (of_eq_true (eq_self (Std.DTreeMap.Internal.Impl.leaf))) (Eq.symm h)) (fun val h ↦ Eq.ndrec (of_eq_true (eq_self (Std.DTreeMap.Internal.Impl.inner (OfNat.ofNat 1) a val (Std.DTreeMap.Internal.Impl.leaf) (Std.DTreeMap.Internal.Impl.leaf)))) (Eq.symm h)) (Eq.refl (f (Option.none))))) t htb hto)
has type
  (size : Nat) → (k : α) → (v : β k) → (l : Std.DTreeMap.Internal.Impl β) → (r : Std.DTreeMap.Internal.Impl β) → (fun x ↦ (hr : Std.DTreeMap.Internal.Impl.Balanced x) → (h : Or (Std.DTreeMap.Internal.Impl.BalanceLErasePrecond (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k v l r)) (Std.DTreeMap.Internal.Impl.size x)) (Std.DTreeMap.Internal.Impl.BalanceLErasePrecond (Std.DTreeMap.Internal.Impl.size x) (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k v l r)))) → (fun r hr h ↦ Std.DTreeMap.Internal.Impl β) x hr h) l → (fun x ↦ (hr : Std.DTreeMap.Internal.Impl.Balanced x) → (h : Or (Std.DTreeMap.Internal.Impl.BalanceLErasePrecond (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k v l r)) (Std.DTreeMap.Internal.Impl.size x)) (Std.DTreeMap.Internal.Impl.BalanceLErasePrecond (Std.DTreeMap.Internal.Impl.size x) (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k v l r)))) → (fun r hr h ↦ Std.DTreeMap.Internal.Impl β) x hr h) r → Std.DTreeMap.Internal.Impl.Balanced (Std.DTreeMap.Internal.Impl.inner size k v l r) → Or (Std.DTreeMap.Internal.Impl.BalanceLErasePrecond (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k v l r)) (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k v l r))) (Std.DTreeMap.Internal.Impl.BalanceLErasePrecond (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k v l r)) (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k v l r))) → Std.DTreeMap.Internal.Impl β
but is expected to have type
  (size : Nat) → (k : α) → (v : β k) → (l : Std.DTreeMap.Internal.Impl β) → (r : Std.DTreeMap.Internal.Impl β) → (fun x ↦ (hr : Std.DTreeMap.Internal.Impl.Balanced x) → (h : Or (Std.DTreeMap.Internal.Impl.BalanceLErasePrecond (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k v l r)) (Std.DTreeMap.Internal.Impl.size x)) (Std.DTreeMap.Internal.Impl.BalanceLErasePrecond (Std.DTreeMap.Internal.Impl.size x) (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k v l r)))) → (fun r hr h ↦ Std.DTreeMap.Internal.Impl β) x hr h) l → (fun x ↦ (hr : Std.DTreeMap.Internal.Impl.Balanced x) → (h : Or (Std.DTreeMap.Internal.Impl.BalanceLErasePrecond (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k v l r)) (Std.DTreeMap.Internal.Impl.size x)) (Std.DTreeMap.Internal.Impl.BalanceLErasePrecond (Std.DTreeMap.Internal.Impl.size x) (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k v l r)))) → (fun r hr h ↦ Std.DTreeMap.Internal.Impl β) x hr h) r → (fun x ↦ (hr : Std.DTreeMap.Internal.Impl.Balanced x) → (h : Or (Std.DTreeMap.Internal.Impl.BalanceLErasePrecond (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k v l r)) (Std.DTreeMap.Internal.Impl.size x)) (Std.DTreeMap.Internal.Impl.BalanceLErasePrecond (Std.DTreeMap.Internal.Impl.size x) (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k v l r)))) → (fun r hr h ↦ Std.DTreeMap.Internal.Impl β) x hr h) (Std.DTreeMap.Internal.Impl.inner size k v l r)
theorem Std.DTreeMap.Internal.Impl.Const.alter_eq_alterₘ.{u, v} : ∀ {α : Type u}, ∀ {β : Type v}, ∀ [inst : Ord.{u} α], ∀ [inst : Std.TransOrd α], ∀ {t : Std.DTreeMap.Internal.Impl fun x ↦ β}, ∀ {a : α}, ∀ {f : Option.{v} β → Option.{v} β}, ∀ (htb : Std.DTreeMap.Internal.Impl.Balanced t), Std.DTreeMap.Internal.Impl.Ordered t → Eq (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.Const.alter a f t htb)) (Std.DTreeMap.Internal.Impl.Const.alterₘ a f t htb) := fun {α β} [inst : Ord.{u} #1] [inst : Std.TransOrd #2] {t a f} htb hto ↦ Eq.mpr (id (congrArg (fun _a ↦ Eq (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.Const.alter a f t htb)) _a) (Std.DTreeMap.Internal.Impl.Const.alterₘ.eq_1 a f t htb))) (Std.DTreeMap.Internal.Impl.rec (fun sz k v l r ihl ihr htb hto ↦ Eq.mpr (id (congrArg (fun _a ↦ Eq (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl _a) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) (Std.DTreeMap.Internal.Impl.inner sz k v l r) htb))) (Std.DTreeMap.Internal.Impl.Const.alter.eq_2 a f sz k v l r htb))) (Eq.mpr (id (congrArg (fun _a ↦ Eq (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.insert.match_3.{(max u v) + 1} (fun x ↦ Std.DTreeMap.Internal.Impl.SizedBalancedTree.{u, v} α (fun x ↦ β) (HSub.hSub (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner sz k v l r)) (OfNat.ofNat 1)) (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner sz k v l r)) (OfNat.ofNat 1))) (Ord.compare a k) (fun _ ↦ Std.DTreeMap.Internal.Impl.Const.alter.match_1 l (fun x ↦ Std.DTreeMap.Internal.Impl.SizedBalancedTree.{u, v} α (fun x ↦ β) (HSub.hSub (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner sz k v l r)) (OfNat.ofNat 1)) (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner sz k v l r)) (OfNat.ofNat 1))) (Std.DTreeMap.Internal.Impl.Const.alter a f l (Std.DTreeMap.Internal.Impl.Const.alter._proof_18 sz k v l r htb)) fun d hd hd'₁ hd'₂ ↦ Std.DTreeMap.Internal.Impl.SizedBalancedTree.mk (Std.DTreeMap.Internal.Impl.balance k v d r (Std.DTreeMap.Internal.Impl.Const.alter._proof_20 sz k v l r htb d hd) (Std.DTreeMap.Internal.Impl.Const.alter._proof_22 sz k v l r htb) (Std.DTreeMap.Internal.Impl.Const.alter._proof_1 sz k v l r htb d hd'₁ hd'₂)) (Std.DTreeMap.Internal.Impl.Const.alter._proof_24 sz k v l r htb d hd hd'₁ hd'₂) (Std.DTreeMap.Internal.Impl.Const.alter._proof_27 sz k v l r htb d hd hd'₁ hd'₂) (Std.DTreeMap.Internal.Impl.Const.alter._proof_30 sz k v l r htb d hd hd'₁ hd'₂)) (fun _ ↦ Std.DTreeMap.Internal.Impl.Const.alter.match_1 r (fun x ↦ Std.DTreeMap.Internal.Impl.SizedBalancedTree.{u, v} α (fun x ↦ β) (HSub.hSub (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner sz k v l r)) (OfNat.ofNat 1)) (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner sz k v l r)) (OfNat.ofNat 1))) (Std.DTreeMap.Internal.Impl.Const.alter a f r (Std.DTreeMap.Internal.Impl.Const.alter._proof_22 sz k v l r htb)) fun d hd hd'₁ hd'₂ ↦ Std.DTreeMap.Internal.Impl.SizedBalancedTree.mk (Std.DTreeMap.Internal.Impl.balance k v l d (Std.DTreeMap.Internal.Impl.Const.alter._proof_18 sz k v l r htb) (Std.DTreeMap.Internal.Impl.Const.alter._proof_20 sz k v l r htb d hd) (Std.DTreeMap.Internal.Impl.Const.alter._proof_2 sz k v l r htb d hd'₁ hd'₂)) (Std.DTreeMap.Internal.Impl.Const.alter._proof_32 sz k v l r htb d hd hd'₁ hd'₂) (Std.DTreeMap.Internal.Impl.Const.alter._proof_35 sz k v l r htb d hd hd'₁ hd'₂) (Std.DTreeMap.Internal.Impl.Const.alter._proof_38 sz k v l r htb d hd hd'₁ hd'₂)) fun _ ↦ Std.DTreeMap.Internal.Impl.Const.«getThenInsertIfNew?».match_1 (fun x ↦ Std.DTreeMap.Internal.Impl.SizedBalancedTree.{u, v} α (fun x ↦ β) (HSub.hSub (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner sz k v l r)) (OfNat.ofNat 1)) (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner sz k v l r)) (OfNat.ofNat 1))) (f (Option.some v)) (fun _ ↦ Std.DTreeMap.Internal.Impl.SizedBalancedTree.mk (Std.DTreeMap.Internal.Impl.glue l r (Std.DTreeMap.Internal.Impl.Const.alter._proof_18 sz k v l r htb) (Std.DTreeMap.Internal.Impl.Const.alter._proof_22 sz k v l r htb) (Std.DTreeMap.Internal.Impl.Const.alter._proof_40 sz k v l r htb)) (Std.DTreeMap.Internal.Impl.Const.alter._proof_42 sz k v l r htb) (Std.DTreeMap.Internal.Impl.Const.alter._proof_45 sz k v l r htb) (Std.DTreeMap.Internal.Impl.Const.alter._proof_48 sz k v l r htb)) fun v ↦ Std.DTreeMap.Internal.Impl.SizedBalancedTree.mk (Std.DTreeMap.Internal.Impl.inner sz a v l r) (Std.DTreeMap.Internal.Impl.Const.alter._proof_50 a sz k v l r htb v) (Std.DTreeMap.Internal.Impl.Const.alter._proof_53 a sz k v l r htb v) (Std.DTreeMap.Internal.Impl.Const.alter._proof_56 a sz k v l r htb v))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl _a)) (Std.DTreeMap.Internal.Impl.updateCell.eq_2 a (Std.DTreeMap.Internal.Cell.Const.alter f) sz k v l r htb))) (_private.Std.Data.DTreeMap.Internal.WF.Lemmas.0.Std.DTreeMap.Internal.Impl.insert.match_3.splitter.{0} (fun x ↦ Eq (Ord.compare a k) x → Eq (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.insert.match_3.{(max u v) + 1} (fun x ↦ Std.DTreeMap.Internal.Impl.SizedBalancedTree.{u, v} α (fun x ↦ β) (HSub.hSub (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner sz k v l r)) (OfNat.ofNat 1)) (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner sz k v l r)) (OfNat.ofNat 1))) (Ord.compare a k) (fun _ ↦ Std.DTreeMap.Internal.Impl.Const.alter.match_1 l (fun x ↦ Std.DTreeMap.Internal.Impl.SizedBalancedTree.{u, v} α (fun x ↦ β) (HSub.hSub (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner sz k v l r)) (OfNat.ofNat 1)) (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner sz k v l r)) (OfNat.ofNat 1))) (Std.DTreeMap.Internal.Impl.Const.alter a f l (Std.DTreeMap.Internal.Impl.Const.alter._proof_18 sz k v l r htb)) fun d hd hd'₁ hd'₂ ↦ Std.DTreeMap.Internal.Impl.SizedBalancedTree.mk (Std.DTreeMap.Internal.Impl.balance k v d r (Std.DTreeMap.Internal.Impl.Const.alter._proof_20 sz k v l r htb d hd) (Std.DTreeMap.Internal.Impl.Const.alter._proof_22 sz k v l r htb) (Std.DTreeMap.Internal.Impl.Const.alter._proof_1 sz k v l r htb d hd'₁ hd'₂)) (Std.DTreeMap.Internal.Impl.Const.alter._proof_24 sz k v l r htb d hd hd'₁ hd'₂) (Std.DTreeMap.Internal.Impl.Const.alter._proof_27 sz k v l r htb d hd hd'₁ hd'₂) (Std.DTreeMap.Internal.Impl.Const.alter._proof_30 sz k v l r htb d hd hd'₁ hd'₂)) (fun _ ↦ Std.DTreeMap.Internal.Impl.Const.alter.match_1 r (fun x ↦ Std.DTreeMap.Internal.Impl.SizedBalancedTree.{u, v} α (fun x ↦ β) (HSub.hSub (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner sz k v l r)) (OfNat.ofNat 1)) (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner sz k v l r)) (OfNat.ofNat 1))) (Std.DTreeMap.Internal.Impl.Const.alter a f r (Std.DTreeMap.Internal.Impl.Const.alter._proof_22 sz k v l r htb)) fun d hd hd'₁ hd'₂ ↦ Std.DTreeMap.Internal.Impl.SizedBalancedTree.mk (Std.DTreeMap.Internal.Impl.balance k v l d (Std.DTreeMap.Internal.Impl.Const.alter._proof_18 sz k v l r htb) (Std.DTreeMap.Internal.Impl.Const.alter._proof_20 sz k v l r htb d hd) (Std.DTreeMap.Internal.Impl.Const.alter._proof_2 sz k v l r htb d hd'₁ hd'₂)) (Std.DTreeMap.Internal.Impl.Const.alter._proof_32 sz k v l r htb d hd hd'₁ hd'₂) (Std.DTreeMap.Internal.Impl.Const.alter._proof_35 sz k v l r htb d hd hd'₁ hd'₂) (Std.DTreeMap.Internal.Impl.Const.alter._proof_38 sz k v l r htb d hd hd'₁ hd'₂)) fun _ ↦ Std.DTreeMap.Internal.Impl.Const.«getThenInsertIfNew?».match_1 (fun x ↦ Std.DTreeMap.Internal.Impl.SizedBalancedTree.{u, v} α (fun x ↦ β) (HSub.hSub (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner sz k v l r)) (OfNat.ofNat 1)) (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner sz k v l r)) (OfNat.ofNat 1))) (f (Option.some v)) (fun _ ↦ Std.DTreeMap.Internal.Impl.SizedBalancedTree.mk (Std.DTreeMap.Internal.Impl.glue l r (Std.DTreeMap.Internal.Impl.Const.alter._proof_18 sz k v l r htb) (Std.DTreeMap.Internal.Impl.Const.alter._proof_22 sz k v l r htb) (Std.DTreeMap.Internal.Impl.Const.alter._proof_40 sz k v l r htb)) (Std.DTreeMap.Internal.Impl.Const.alter._proof_42 sz k v l r htb) (Std.DTreeMap.Internal.Impl.Const.alter._proof_45 sz k v l r htb) (Std.DTreeMap.Internal.Impl.Const.alter._proof_48 sz k v l r htb)) fun v ↦ Std.DTreeMap.Internal.Impl.SizedBalancedTree.mk (Std.DTreeMap.Internal.Impl.inner sz a v l r) (Std.DTreeMap.Internal.Impl.Const.alter._proof_50 a sz k v l r htb v) (Std.DTreeMap.Internal.Impl.Const.alter._proof_53 a sz k v l r htb v) (Std.DTreeMap.Internal.Impl.Const.alter._proof_56 a sz k v l r htb v))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.applyPartition.go.match_1.{(max u v) + 1} (fun x ↦ Std.DTreeMap.Internal.Impl.SizedBalancedTree.{u, v} α (fun x ↦ β) (HSub.hSub (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner sz k v l r)) (OfNat.ofNat 1)) (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner sz k v l r)) (OfNat.ofNat 1))) (Ord.compare a k) (fun h ↦ Std.DTreeMap.Internal.Impl.updateCell.match_3 l (fun x ↦ Std.DTreeMap.Internal.Impl.SizedBalancedTree.{u, v} α (fun x ↦ β) (HSub.hSub (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner sz k v l r)) (OfNat.ofNat 1)) (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner sz k v l r)) (OfNat.ofNat 1))) (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) l (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb)) fun newL h₁ h₂ h₃ ↦ Std.DTreeMap.Internal.Impl.SizedBalancedTree.mk (Std.DTreeMap.Internal.Impl.balance k v newL r (Std.DTreeMap.Internal.Impl.updateCell._proof_27 sz k v l r htb newL h₁) (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb) (Std.DTreeMap.Internal.Impl.updateCell._proof_32 sz k v l r htb newL h₂ h₃)) (Std.DTreeMap.Internal.Impl.updateCell._proof_34 sz k v l r htb newL h₁ h₂ h₃) (Std.DTreeMap.Internal.Impl.updateCell._proof_37 sz k v l r htb newL h₁ h₂ h₃) (Std.DTreeMap.Internal.Impl.updateCell._proof_40 sz k v l r htb newL h₁ h₂ h₃)) (fun h ↦ Std.DTreeMap.Internal.Impl.updateCell.match_1 (fun x ↦ Std.DTreeMap.Internal.Impl.SizedBalancedTree.{u, v} α (fun x ↦ β) (HSub.hSub (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner sz k v l r)) (OfNat.ofNat 1)) (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner sz k v l r)) (OfNat.ofNat 1))) (Std.DTreeMap.Internal.Cell.inner (Std.DTreeMap.Internal.Cell.Const.alter f (Std.DTreeMap.Internal.Cell.ofEq k v fun [Std.OrientedOrd α] ↦ h))) (fun _ ↦ Std.DTreeMap.Internal.Impl.SizedBalancedTree.mk (Std.DTreeMap.Internal.Impl.glue l r (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb) (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb) (Std.DTreeMap.Internal.Impl.updateCell._proof_42 sz k v l r htb)) (Std.DTreeMap.Internal.Impl.updateCell._proof_44 sz k v l r htb) (Std.DTreeMap.Internal.Impl.updateCell._proof_47 sz k v l r htb) (Std.DTreeMap.Internal.Impl.updateCell._proof_50 sz k v l r htb)) fun ky' y' ↦ Std.DTreeMap.Internal.Impl.SizedBalancedTree.mk (Std.DTreeMap.Internal.Impl.inner sz ky' y' l r) (Std.DTreeMap.Internal.Impl.updateCell._proof_52 sz k v l r htb ky' y') (Std.DTreeMap.Internal.Impl.updateCell._proof_55 sz k v l r htb ky' y') (Std.DTreeMap.Internal.Impl.updateCell._proof_58 sz k v l r htb ky' y')) fun h ↦ Std.DTreeMap.Internal.Impl.updateCell.match_3 r (fun x ↦ Std.DTreeMap.Internal.Impl.SizedBalancedTree.{u, v} α (fun x ↦ β) (HSub.hSub (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner sz k v l r)) (OfNat.ofNat 1)) (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner sz k v l r)) (OfNat.ofNat 1))) (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) r (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb)) fun newR h₁ h₂ h₃ ↦ Std.DTreeMap.Internal.Impl.SizedBalancedTree.mk (Std.DTreeMap.Internal.Impl.balance k v l newR (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb) (Std.DTreeMap.Internal.Impl.updateCell._proof_27 sz k v l r htb newR h₁) (Std.DTreeMap.Internal.Impl.updateCell._proof_61 sz k v l r htb newR h₂ h₃)) (Std.DTreeMap.Internal.Impl.updateCell._proof_63 sz k v l r htb newR h₁ h₂ h₃) (Std.DTreeMap.Internal.Impl.updateCell._proof_66 sz k v l r htb newR h₁ h₂ h₃) (Std.DTreeMap.Internal.Impl.updateCell._proof_69 sz k v l r htb newR h₁ h₂ h₃)))) (Ord.compare a k) (fun a h ↦ Eq.ndrec (fun heq ↦ id (Eq.mpr (id (congrArg (Eq (Std.DTreeMap.Internal.Impl.balance k v (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.Const.alter a f l (Std.DTreeMap.Internal.Impl.Const.alter._proof_18 sz k v l r htb))) r (Std.DTreeMap.Internal.Impl.Const.alter._proof_20 sz k v l r htb (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.Const.alter a f l (Std.DTreeMap.Internal.Impl.Const.alter._proof_18 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.balanced_impl (Std.DTreeMap.Internal.Impl.Const.alter a f l (Std.DTreeMap.Internal.Impl.Const.alter._proof_18 sz k v l r htb)))) (Std.DTreeMap.Internal.Impl.Const.alter._proof_22 sz k v l r htb) (Std.DTreeMap.Internal.Impl.Const.alter._proof_1 sz k v l r htb (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.Const.alter a f l (Std.DTreeMap.Internal.Impl.Const.alter._proof_18 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.lb_le_size_impl (Std.DTreeMap.Internal.Impl.Const.alter a f l (Std.DTreeMap.Internal.Impl.Const.alter._proof_18 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.size_impl_le_ub (Std.DTreeMap.Internal.Impl.Const.alter a f l (Std.DTreeMap.Internal.Impl.Const.alter._proof_18 sz k v l r htb)))))) (congrArg (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl) (Std.DTreeMap.Internal.Impl.applyPartition.go.match_1.congr heq (fun h ↦ Eq.refl (Std.DTreeMap.Internal.Impl.SizedBalancedTree.mk (Std.DTreeMap.Internal.Impl.balance k v (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) l (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb))) r (Std.DTreeMap.Internal.Impl.updateCell._proof_27 sz k v l r htb (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) l (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.balanced_impl (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) l (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb)))) (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb) (Std.DTreeMap.Internal.Impl.updateCell._proof_32 sz k v l r htb (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) l (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.lb_le_size_impl (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) l (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.size_impl_le_ub (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) l (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb))))) (Std.DTreeMap.Internal.Impl.updateCell._proof_34 sz k v l r htb (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) l (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.balanced_impl (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) l (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.lb_le_size_impl (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) l (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.size_impl_le_ub (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) l (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb)))) (Std.DTreeMap.Internal.Impl.updateCell._proof_37 sz k v l r htb (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) l (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.balanced_impl (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) l (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.lb_le_size_impl (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) l (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.size_impl_le_ub (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) l (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb)))) (Std.DTreeMap.Internal.Impl.updateCell._proof_40 sz k v l r htb (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) l (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.balanced_impl (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) l (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.lb_le_size_impl (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) l (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.size_impl_le_ub (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) l (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb)))))) (fun h ↦ Eq.refl (Std.DTreeMap.Internal.Impl.updateCell.match_1 (fun x ↦ Std.DTreeMap.Internal.Impl.SizedBalancedTree.{u, v} α (fun x ↦ β) (HSub.hSub (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner sz k v l r)) (OfNat.ofNat 1)) (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner sz k v l r)) (OfNat.ofNat 1))) (Std.DTreeMap.Internal.Cell.inner (Std.DTreeMap.Internal.Cell.Const.alter f (Std.DTreeMap.Internal.Cell.ofEq k v fun [Std.OrientedOrd α] ↦ Eq.trans heq h))) (fun _ ↦ Std.DTreeMap.Internal.Impl.SizedBalancedTree.mk (Std.DTreeMap.Internal.Impl.glue l r (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb) (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb) (Std.DTreeMap.Internal.Impl.updateCell._proof_42 sz k v l r htb)) (Std.DTreeMap.Internal.Impl.updateCell._proof_44 sz k v l r htb) (Std.DTreeMap.Internal.Impl.updateCell._proof_47 sz k v l r htb) (Std.DTreeMap.Internal.Impl.updateCell._proof_50 sz k v l r htb)) fun ky' y' ↦ Std.DTreeMap.Internal.Impl.SizedBalancedTree.mk (Std.DTreeMap.Internal.Impl.inner sz ky' y' l r) (Std.DTreeMap.Internal.Impl.updateCell._proof_52 sz k v l r htb ky' y') (Std.DTreeMap.Internal.Impl.updateCell._proof_55 sz k v l r htb ky' y') (Std.DTreeMap.Internal.Impl.updateCell._proof_58 sz k v l r htb ky' y'))) fun h ↦ Eq.refl (Std.DTreeMap.Internal.Impl.SizedBalancedTree.mk (Std.DTreeMap.Internal.Impl.balance k v l (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) r (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb) (Std.DTreeMap.Internal.Impl.updateCell._proof_27 sz k v l r htb (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) r (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.balanced_impl (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) r (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb)))) (Std.DTreeMap.Internal.Impl.updateCell._proof_61 sz k v l r htb (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) r (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.lb_le_size_impl (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) r (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.size_impl_le_ub (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) r (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb))))) (Std.DTreeMap.Internal.Impl.updateCell._proof_63 sz k v l r htb (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) r (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.balanced_impl (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) r (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.lb_le_size_impl (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) r (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.size_impl_le_ub (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) r (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb)))) (Std.DTreeMap.Internal.Impl.updateCell._proof_66 sz k v l r htb (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) r (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.balanced_impl (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) r (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.lb_le_size_impl (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) r (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.size_impl_le_ub (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) r (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb)))) (Std.DTreeMap.Internal.Impl.updateCell._proof_69 sz k v l r htb (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) r (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.balanced_impl (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) r (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.lb_le_size_impl (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) r (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.size_impl_le_ub (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) r (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb))))))))) (of_eq_true (Eq.trans (congrFun' (congrArg (Eq) (Std.DTreeMap.Internal.Impl.balance.congr_simp k v v (Eq.refl v) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.Const.alter a f l (Std.DTreeMap.Internal.Impl.Const.alter._proof_18 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) l (Std.DTreeMap.Internal.Impl.Balanced.left htb))) (ihl (Std.DTreeMap.Internal.Impl.Balanced.left htb) (Std.DTreeMap.Internal.Impl.Ordered.left hto)) r r (Eq.refl r) (Std.DTreeMap.Internal.Impl.Const.alter._proof_20 sz k v l r htb (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.Const.alter a f l (Std.DTreeMap.Internal.Impl.Const.alter._proof_18 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.balanced_impl (Std.DTreeMap.Internal.Impl.Const.alter a f l (Std.DTreeMap.Internal.Impl.Const.alter._proof_18 sz k v l r htb)))) (Std.DTreeMap.Internal.Impl.Const.alter._proof_22 sz k v l r htb) (Std.DTreeMap.Internal.Impl.Const.alter._proof_1 sz k v l r htb (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.Const.alter a f l (Std.DTreeMap.Internal.Impl.Const.alter._proof_18 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.lb_le_size_impl (Std.DTreeMap.Internal.Impl.Const.alter a f l (Std.DTreeMap.Internal.Impl.Const.alter._proof_18 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.size_impl_le_ub (Std.DTreeMap.Internal.Impl.Const.alter a f l (Std.DTreeMap.Internal.Impl.Const.alter._proof_18 sz k v l r htb)))))) (Std.DTreeMap.Internal.Impl.balance k v (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) l (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb))) r (Std.DTreeMap.Internal.Impl.updateCell._proof_27 sz k v l r htb (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) l (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.balanced_impl (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) l (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb)))) (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb) (Std.DTreeMap.Internal.Impl.updateCell._proof_32 sz k v l r htb (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) l (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.lb_le_size_impl (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) l (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.size_impl_le_ub (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) l (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb)))))) (eq_self (Std.DTreeMap.Internal.Impl.balance k v (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) l (Std.DTreeMap.Internal.Impl.Balanced.left htb))) r (Eq.ndrec (Std.DTreeMap.Internal.Impl.Const.alter._proof_20 sz k v l r htb (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.Const.alter a f l (Std.DTreeMap.Internal.Impl.Const.alter._proof_18 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.balanced_impl (Std.DTreeMap.Internal.Impl.Const.alter a f l (Std.DTreeMap.Internal.Impl.Const.alter._proof_18 sz k v l r htb)))) (ihl (Std.DTreeMap.Internal.Impl.Balanced.left htb) (Std.DTreeMap.Internal.Impl.Ordered.left hto))) (Std.DTreeMap.Internal.Impl.Const.alter._proof_22 sz k v l r htb) (Eq.ndrec (Eq.ndrec (Std.DTreeMap.Internal.Impl.Const.alter._proof_1 sz k v l r htb (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.Const.alter a f l (Std.DTreeMap.Internal.Impl.Const.alter._proof_18 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.lb_le_size_impl (Std.DTreeMap.Internal.Impl.Const.alter a f l (Std.DTreeMap.Internal.Impl.Const.alter._proof_18 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.size_impl_le_ub (Std.DTreeMap.Internal.Impl.Const.alter a f l (Std.DTreeMap.Internal.Impl.Const.alter._proof_18 sz k v l r htb)))) (Eq.refl r)) (ihl (Std.DTreeMap.Internal.Impl.Balanced.left htb) (Std.DTreeMap.Internal.Impl.Ordered.left hto))))))))) (Eq.symm h) (Eq.refl (Ord.compare a k))) (fun a h ↦ Eq.ndrec (fun heq ↦ id (Eq.mpr (id (congrArg (Eq (Std.DTreeMap.Internal.Impl.balance k v l (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.Const.alter a f r (Std.DTreeMap.Internal.Impl.Const.alter._proof_22 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.Const.alter._proof_18 sz k v l r htb) (Std.DTreeMap.Internal.Impl.Const.alter._proof_20 sz k v l r htb (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.Const.alter a f r (Std.DTreeMap.Internal.Impl.Const.alter._proof_22 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.balanced_impl (Std.DTreeMap.Internal.Impl.Const.alter a f r (Std.DTreeMap.Internal.Impl.Const.alter._proof_22 sz k v l r htb)))) (Std.DTreeMap.Internal.Impl.Const.alter._proof_2 sz k v l r htb (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.Const.alter a f r (Std.DTreeMap.Internal.Impl.Const.alter._proof_22 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.lb_le_size_impl (Std.DTreeMap.Internal.Impl.Const.alter a f r (Std.DTreeMap.Internal.Impl.Const.alter._proof_22 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.size_impl_le_ub (Std.DTreeMap.Internal.Impl.Const.alter a f r (Std.DTreeMap.Internal.Impl.Const.alter._proof_22 sz k v l r htb)))))) (congrArg (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl) (Std.DTreeMap.Internal.Impl.applyPartition.go.match_1.congr heq (fun h ↦ Eq.refl (Std.DTreeMap.Internal.Impl.SizedBalancedTree.mk (Std.DTreeMap.Internal.Impl.balance k v (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) l (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb))) r (Std.DTreeMap.Internal.Impl.updateCell._proof_27 sz k v l r htb (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) l (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.balanced_impl (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) l (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb)))) (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb) (Std.DTreeMap.Internal.Impl.updateCell._proof_32 sz k v l r htb (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) l (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.lb_le_size_impl (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) l (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.size_impl_le_ub (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) l (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb))))) (Std.DTreeMap.Internal.Impl.updateCell._proof_34 sz k v l r htb (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) l (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.balanced_impl (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) l (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.lb_le_size_impl (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) l (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.size_impl_le_ub (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) l (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb)))) (Std.DTreeMap.Internal.Impl.updateCell._proof_37 sz k v l r htb (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) l (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.balanced_impl (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) l (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.lb_le_size_impl (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) l (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.size_impl_le_ub (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) l (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb)))) (Std.DTreeMap.Internal.Impl.updateCell._proof_40 sz k v l r htb (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) l (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.balanced_impl (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) l (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.lb_le_size_impl (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) l (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.size_impl_le_ub (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) l (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb)))))) (fun h ↦ Eq.refl (Std.DTreeMap.Internal.Impl.updateCell.match_1 (fun x ↦ Std.DTreeMap.Internal.Impl.SizedBalancedTree.{u, v} α (fun x ↦ β) (HSub.hSub (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner sz k v l r)) (OfNat.ofNat 1)) (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner sz k v l r)) (OfNat.ofNat 1))) (Std.DTreeMap.Internal.Cell.inner (Std.DTreeMap.Internal.Cell.Const.alter f (Std.DTreeMap.Internal.Cell.ofEq k v fun [Std.OrientedOrd α] ↦ Eq.trans heq h))) (fun _ ↦ Std.DTreeMap.Internal.Impl.SizedBalancedTree.mk (Std.DTreeMap.Internal.Impl.glue l r (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb) (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb) (Std.DTreeMap.Internal.Impl.updateCell._proof_42 sz k v l r htb)) (Std.DTreeMap.Internal.Impl.updateCell._proof_44 sz k v l r htb) (Std.DTreeMap.Internal.Impl.updateCell._proof_47 sz k v l r htb) (Std.DTreeMap.Internal.Impl.updateCell._proof_50 sz k v l r htb)) fun ky' y' ↦ Std.DTreeMap.Internal.Impl.SizedBalancedTree.mk (Std.DTreeMap.Internal.Impl.inner sz ky' y' l r) (Std.DTreeMap.Internal.Impl.updateCell._proof_52 sz k v l r htb ky' y') (Std.DTreeMap.Internal.Impl.updateCell._proof_55 sz k v l r htb ky' y') (Std.DTreeMap.Internal.Impl.updateCell._proof_58 sz k v l r htb ky' y'))) fun h ↦ Eq.refl (Std.DTreeMap.Internal.Impl.SizedBalancedTree.mk (Std.DTreeMap.Internal.Impl.balance k v l (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) r (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb) (Std.DTreeMap.Internal.Impl.updateCell._proof_27 sz k v l r htb (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) r (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.balanced_impl (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) r (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb)))) (Std.DTreeMap.Internal.Impl.updateCell._proof_61 sz k v l r htb (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) r (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.lb_le_size_impl (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) r (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.size_impl_le_ub (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) r (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb))))) (Std.DTreeMap.Internal.Impl.updateCell._proof_63 sz k v l r htb (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) r (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.balanced_impl (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) r (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.lb_le_size_impl (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) r (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.size_impl_le_ub (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) r (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb)))) (Std.DTreeMap.Internal.Impl.updateCell._proof_66 sz k v l r htb (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) r (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.balanced_impl (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) r (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.lb_le_size_impl (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) r (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.size_impl_le_ub (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) r (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb)))) (Std.DTreeMap.Internal.Impl.updateCell._proof_69 sz k v l r htb (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) r (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.balanced_impl (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) r (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.lb_le_size_impl (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) r (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.size_impl_le_ub (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) r (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb))))))))) (of_eq_true (Eq.trans (congrFun' (congrArg (Eq) (Std.DTreeMap.Internal.Impl.balance.congr_simp k v v (Eq.refl v) l l (Eq.refl l) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.Const.alter a f r (Std.DTreeMap.Internal.Impl.Const.alter._proof_22 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) r (Std.DTreeMap.Internal.Impl.Balanced.right htb))) (ihr (Std.DTreeMap.Internal.Impl.Balanced.right htb) (Std.DTreeMap.Internal.Impl.Ordered.right hto)) (Std.DTreeMap.Internal.Impl.Const.alter._proof_18 sz k v l r htb) (Std.DTreeMap.Internal.Impl.Const.alter._proof_20 sz k v l r htb (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.Const.alter a f r (Std.DTreeMap.Internal.Impl.Const.alter._proof_22 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.balanced_impl (Std.DTreeMap.Internal.Impl.Const.alter a f r (Std.DTreeMap.Internal.Impl.Const.alter._proof_22 sz k v l r htb)))) (Std.DTreeMap.Internal.Impl.Const.alter._proof_2 sz k v l r htb (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.Const.alter a f r (Std.DTreeMap.Internal.Impl.Const.alter._proof_22 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.lb_le_size_impl (Std.DTreeMap.Internal.Impl.Const.alter a f r (Std.DTreeMap.Internal.Impl.Const.alter._proof_22 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.size_impl_le_ub (Std.DTreeMap.Internal.Impl.Const.alter a f r (Std.DTreeMap.Internal.Impl.Const.alter._proof_22 sz k v l r htb)))))) (Std.DTreeMap.Internal.Impl.balance k v l (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) r (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb) (Std.DTreeMap.Internal.Impl.updateCell._proof_27 sz k v l r htb (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) r (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.balanced_impl (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) r (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb)))) (Std.DTreeMap.Internal.Impl.updateCell._proof_61 sz k v l r htb (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) r (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.lb_le_size_impl (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) r (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.size_impl_le_ub (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) r (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb)))))) (eq_self (Std.DTreeMap.Internal.Impl.balance k v l (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) r (Std.DTreeMap.Internal.Impl.Balanced.right htb))) (Std.DTreeMap.Internal.Impl.Const.alter._proof_18 sz k v l r htb) (Eq.ndrec (Std.DTreeMap.Internal.Impl.Const.alter._proof_20 sz k v l r htb (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.Const.alter a f r (Std.DTreeMap.Internal.Impl.Const.alter._proof_22 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.balanced_impl (Std.DTreeMap.Internal.Impl.Const.alter a f r (Std.DTreeMap.Internal.Impl.Const.alter._proof_22 sz k v l r htb)))) (ihr (Std.DTreeMap.Internal.Impl.Balanced.right htb) (Std.DTreeMap.Internal.Impl.Ordered.right hto))) (Eq.ndrec (Std.DTreeMap.Internal.Impl.Const.alter._proof_2 sz k v l r htb (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.Const.alter a f r (Std.DTreeMap.Internal.Impl.Const.alter._proof_22 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.lb_le_size_impl (Std.DTreeMap.Internal.Impl.Const.alter a f r (Std.DTreeMap.Internal.Impl.Const.alter._proof_22 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.size_impl_le_ub (Std.DTreeMap.Internal.Impl.Const.alter a f r (Std.DTreeMap.Internal.Impl.Const.alter._proof_22 sz k v l r htb)))) (ihr (Std.DTreeMap.Internal.Impl.Balanced.right htb) (Std.DTreeMap.Internal.Impl.Ordered.right hto))))))))) (Eq.symm h) (Eq.refl (Ord.compare a k))) (fun a h ↦ Eq.ndrec (fun heq ↦ id (Eq.mpr (id (congrArg (Eq (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.Const.«getThenInsertIfNew?».match_1 (fun x ↦ Std.DTreeMap.Internal.Impl.SizedBalancedTree.{u, v} α (fun x ↦ β) (HSub.hSub (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner sz k v l r)) (OfNat.ofNat 1)) (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner sz k v l r)) (OfNat.ofNat 1))) (f (Option.some v)) (fun _ ↦ Std.DTreeMap.Internal.Impl.SizedBalancedTree.mk (Std.DTreeMap.Internal.Impl.glue l r (Std.DTreeMap.Internal.Impl.Const.alter._proof_18 sz k v l r htb) (Std.DTreeMap.Internal.Impl.Const.alter._proof_22 sz k v l r htb) (Std.DTreeMap.Internal.Impl.Const.alter._proof_40 sz k v l r htb)) (Std.DTreeMap.Internal.Impl.Const.alter._proof_42 sz k v l r htb) (Std.DTreeMap.Internal.Impl.Const.alter._proof_45 sz k v l r htb) (Std.DTreeMap.Internal.Impl.Const.alter._proof_48 sz k v l r htb)) fun v ↦ Std.DTreeMap.Internal.Impl.SizedBalancedTree.mk (Std.DTreeMap.Internal.Impl.inner sz a v l r) (Std.DTreeMap.Internal.Impl.Const.alter._proof_50 a sz k v l r htb v) (Std.DTreeMap.Internal.Impl.Const.alter._proof_53 a sz k v l r htb v) (Std.DTreeMap.Internal.Impl.Const.alter._proof_56 a sz k v l r htb v)))) (congrArg (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl) (Std.DTreeMap.Internal.Impl.applyPartition.go.match_1.congr heq (fun h ↦ Eq.refl (Std.DTreeMap.Internal.Impl.SizedBalancedTree.mk (Std.DTreeMap.Internal.Impl.balance k v (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) l (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb))) r (Std.DTreeMap.Internal.Impl.updateCell._proof_27 sz k v l r htb (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) l (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.balanced_impl (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) l (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb)))) (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb) (Std.DTreeMap.Internal.Impl.updateCell._proof_32 sz k v l r htb (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) l (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.lb_le_size_impl (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) l (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.size_impl_le_ub (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) l (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb))))) (Std.DTreeMap.Internal.Impl.updateCell._proof_34 sz k v l r htb (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) l (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.balanced_impl (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) l (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.lb_le_size_impl (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) l (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.size_impl_le_ub (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) l (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb)))) (Std.DTreeMap.Internal.Impl.updateCell._proof_37 sz k v l r htb (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) l (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.balanced_impl (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) l (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.lb_le_size_impl (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) l (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.size_impl_le_ub (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) l (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb)))) (Std.DTreeMap.Internal.Impl.updateCell._proof_40 sz k v l r htb (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) l (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.balanced_impl (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) l (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.lb_le_size_impl (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) l (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.size_impl_le_ub (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) l (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb)))))) (fun h ↦ Eq.refl (Std.DTreeMap.Internal.Impl.updateCell.match_1 (fun x ↦ Std.DTreeMap.Internal.Impl.SizedBalancedTree.{u, v} α (fun x ↦ β) (HSub.hSub (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner sz k v l r)) (OfNat.ofNat 1)) (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner sz k v l r)) (OfNat.ofNat 1))) (Std.DTreeMap.Internal.Cell.inner (Std.DTreeMap.Internal.Cell.Const.alter f (Std.DTreeMap.Internal.Cell.ofEq k v fun [Std.OrientedOrd α] ↦ Eq.trans heq h))) (fun _ ↦ Std.DTreeMap.Internal.Impl.SizedBalancedTree.mk (Std.DTreeMap.Internal.Impl.glue l r (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb) (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb) (Std.DTreeMap.Internal.Impl.updateCell._proof_42 sz k v l r htb)) (Std.DTreeMap.Internal.Impl.updateCell._proof_44 sz k v l r htb) (Std.DTreeMap.Internal.Impl.updateCell._proof_47 sz k v l r htb) (Std.DTreeMap.Internal.Impl.updateCell._proof_50 sz k v l r htb)) fun ky' y' ↦ Std.DTreeMap.Internal.Impl.SizedBalancedTree.mk (Std.DTreeMap.Internal.Impl.inner sz ky' y' l r) (Std.DTreeMap.Internal.Impl.updateCell._proof_52 sz k v l r htb ky' y') (Std.DTreeMap.Internal.Impl.updateCell._proof_55 sz k v l r htb ky' y') (Std.DTreeMap.Internal.Impl.updateCell._proof_58 sz k v l r htb ky' y'))) fun h ↦ Eq.refl (Std.DTreeMap.Internal.Impl.SizedBalancedTree.mk (Std.DTreeMap.Internal.Impl.balance k v l (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) r (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb) (Std.DTreeMap.Internal.Impl.updateCell._proof_27 sz k v l r htb (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) r (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.balanced_impl (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) r (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb)))) (Std.DTreeMap.Internal.Impl.updateCell._proof_61 sz k v l r htb (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) r (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.lb_le_size_impl (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) r (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.size_impl_le_ub (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) r (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb))))) (Std.DTreeMap.Internal.Impl.updateCell._proof_63 sz k v l r htb (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) r (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.balanced_impl (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) r (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.lb_le_size_impl (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) r (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.size_impl_le_ub (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) r (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb)))) (Std.DTreeMap.Internal.Impl.updateCell._proof_66 sz k v l r htb (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) r (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.balanced_impl (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) r (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.lb_le_size_impl (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) r (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.size_impl_le_ub (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) r (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb)))) (Std.DTreeMap.Internal.Impl.updateCell._proof_69 sz k v l r htb (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) r (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.balanced_impl (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) r (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.lb_le_size_impl (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) r (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.size_impl_le_ub (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) r (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb))))))))) (Eq.symm (id (Option.casesOn (f (Option.some v)) (fun h ↦ Eq.ndrec (fun h₁ ↦ Eq.refl (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.updateCell.match_1 (fun x ↦ Std.DTreeMap.Internal.Impl.SizedBalancedTree.{u, v} α (fun x ↦ β) (HSub.hSub (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner sz k v l r)) (OfNat.ofNat 1)) (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner sz k v l r)) (OfNat.ofNat 1))) (Std.DTreeMap.Internal.Cell.inner (Std.DTreeMap.Internal.Cell.ofOption.match_1 a (fun «v?» ↦ Std.DTreeMap.Internal.Cell α (fun x ↦ β) (Ord.compare a)) (Option.none) (fun _ ↦ Std.DTreeMap.Internal.Cell.empty) fun v ↦ Std.DTreeMap.Internal.Cell.of a v)) (fun _ ↦ Std.DTreeMap.Internal.Impl.SizedBalancedTree.mk (Std.DTreeMap.Internal.Impl.glue l r (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb) (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb) (Std.DTreeMap.Internal.Impl.updateCell._proof_42 sz k v l r htb)) (Std.DTreeMap.Internal.Impl.updateCell._proof_44 sz k v l r htb) (Std.DTreeMap.Internal.Impl.updateCell._proof_47 sz k v l r htb) (Std.DTreeMap.Internal.Impl.updateCell._proof_50 sz k v l r htb)) fun ky' y' ↦ Std.DTreeMap.Internal.Impl.SizedBalancedTree.mk (Std.DTreeMap.Internal.Impl.inner sz ky' y' l r) (Std.DTreeMap.Internal.Impl.updateCell._proof_52 sz k v l r htb ky' y') (Std.DTreeMap.Internal.Impl.updateCell._proof_55 sz k v l r htb ky' y') (Std.DTreeMap.Internal.Impl.updateCell._proof_58 sz k v l r htb ky' y')))) (Eq.symm h) (Eq.refl (f (Option.some v)))) (fun val h ↦ Eq.ndrec (fun h₁ ↦ Eq.refl (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.updateCell.match_1 (fun x ↦ Std.DTreeMap.Internal.Impl.SizedBalancedTree.{u, v} α (fun x ↦ β) (HSub.hSub (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner sz k v l r)) (OfNat.ofNat 1)) (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner sz k v l r)) (OfNat.ofNat 1))) (Std.DTreeMap.Internal.Cell.inner (Std.DTreeMap.Internal.Cell.ofOption.match_1 a (fun «v?» ↦ Std.DTreeMap.Internal.Cell α (fun x ↦ β) (Ord.compare a)) (Option.some val) (fun _ ↦ Std.DTreeMap.Internal.Cell.empty) fun v ↦ Std.DTreeMap.Internal.Cell.of a v)) (fun _ ↦ Std.DTreeMap.Internal.Impl.SizedBalancedTree.mk (Std.DTreeMap.Internal.Impl.glue l r (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb) (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb) (Std.DTreeMap.Internal.Impl.updateCell._proof_42 sz k v l r htb)) (Std.DTreeMap.Internal.Impl.updateCell._proof_44 sz k v l r htb) (Std.DTreeMap.Internal.Impl.updateCell._proof_47 sz k v l r htb) (Std.DTreeMap.Internal.Impl.updateCell._proof_50 sz k v l r htb)) fun ky' y' ↦ Std.DTreeMap.Internal.Impl.SizedBalancedTree.mk (Std.DTreeMap.Internal.Impl.inner sz ky' y' l r) (Std.DTreeMap.Internal.Impl.updateCell._proof_52 sz k v l r htb ky' y') (Std.DTreeMap.Internal.Impl.updateCell._proof_55 sz k v l r htb ky' y') (Std.DTreeMap.Internal.Impl.updateCell._proof_58 sz k v l r htb ky' y')))) (Eq.symm h) (Eq.refl (f (Option.some v)))) (Eq.refl (f (Option.some v)))))))) (Eq.symm h) (Eq.refl (Ord.compare a k))) (Eq.refl (Ord.compare a k))))) (fun htb hto ↦ id (Option.casesOn (f (Option.none)) (fun h ↦ Eq.ndrec (of_eq_true (eq_self (Std.DTreeMap.Internal.Impl.leaf))) (Eq.symm h)) (fun val h ↦ Eq.ndrec (of_eq_true (eq_self (Std.DTreeMap.Internal.Impl.inner (OfNat.ofNat 1) a val (Std.DTreeMap.Internal.Impl.leaf) (Std.DTreeMap.Internal.Impl.leaf)))) (Eq.symm h)) (Eq.refl (f (Option.none))))) t htb hto)
has type
  (size : Nat) → (k : α) → (v : (fun x ↦ β) k) → (l : Std.DTreeMap.Internal.Impl fun x ↦ β) → (r : Std.DTreeMap.Internal.Impl fun x ↦ β) → (fun x ↦ (hr : Std.DTreeMap.Internal.Impl.Balanced x) → (h : Or (Std.DTreeMap.Internal.Impl.BalanceLErasePrecond (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k v l r)) (Std.DTreeMap.Internal.Impl.size x)) (Std.DTreeMap.Internal.Impl.BalanceLErasePrecond (Std.DTreeMap.Internal.Impl.size x) (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k v l r)))) → (fun r hr h ↦ Std.DTreeMap.Internal.Impl fun x ↦ β) x hr h) l → (fun x ↦ (hr : Std.DTreeMap.Internal.Impl.Balanced x) → (h : Or (Std.DTreeMap.Internal.Impl.BalanceLErasePrecond (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k v l r)) (Std.DTreeMap.Internal.Impl.size x)) (Std.DTreeMap.Internal.Impl.BalanceLErasePrecond (Std.DTreeMap.Internal.Impl.size x) (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k v l r)))) → (fun r hr h ↦ Std.DTreeMap.Internal.Impl fun x ↦ β) x hr h) r → Std.DTreeMap.Internal.Impl.Balanced (Std.DTreeMap.Internal.Impl.inner size k v l r) → Or (Std.DTreeMap.Internal.Impl.BalanceLErasePrecond (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k v l r)) (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k v l r))) (Std.DTreeMap.Internal.Impl.BalanceLErasePrecond (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k v l r)) (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k v l r))) → Std.DTreeMap.Internal.Impl fun x ↦ β
but is expected to have type
  (size : Nat) → (k : α) → (v : (fun x ↦ β) k) → (l : Std.DTreeMap.Internal.Impl fun x ↦ β) → (r : Std.DTreeMap.Internal.Impl fun x ↦ β) → (fun x ↦ (hr : Std.DTreeMap.Internal.Impl.Balanced x) → (h : Or (Std.DTreeMap.Internal.Impl.BalanceLErasePrecond (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k v l r)) (Std.DTreeMap.Internal.Impl.size x)) (Std.DTreeMap.Internal.Impl.BalanceLErasePrecond (Std.DTreeMap.Internal.Impl.size x) (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k v l r)))) → (fun r hr h ↦ Std.DTreeMap.Internal.Impl fun x ↦ β) x hr h) l → (fun x ↦ (hr : Std.DTreeMap.Internal.Impl.Balanced x) → (h : Or (Std.DTreeMap.Internal.Impl.BalanceLErasePrecond (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k v l r)) (Std.DTreeMap.Internal.Impl.size x)) (Std.DTreeMap.Internal.Impl.BalanceLErasePrecond (Std.DTreeMap.Internal.Impl.size x) (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k v l r)))) → (fun r hr h ↦ Std.DTreeMap.Internal.Impl fun x ↦ β) x hr h) r → (fun x ↦ (hr : Std.DTreeMap.Internal.Impl.Balanced x) → (h : Or (Std.DTreeMap.Internal.Impl.BalanceLErasePrecond (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k v l r)) (Std.DTreeMap.Internal.Impl.size x)) (Std.DTreeMap.Internal.Impl.BalanceLErasePrecond (Std.DTreeMap.Internal.Impl.size x) (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k v l r)))) → (fun r hr h ↦ Std.DTreeMap.Internal.Impl fun x ↦ β) x hr h) (Std.DTreeMap.Internal.Impl.inner size k v l r)
theorem Std.DTreeMap.Internal.Impl.modify_eq_alter.{u, v} : ∀ {α : Type u}, ∀ {β : α → Type v}, ∀ [inst : Ord.{u} α], ∀ [inst : Std.LawfulEqOrd α], ∀ {t : Std.DTreeMap.Internal.Impl β}, ∀ {a : α}, ∀ {f : β a → β a}, ∀ (htb : Std.DTreeMap.Internal.Impl.Balanced t), Eq (Std.DTreeMap.Internal.Impl.modify a f t) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.alter a (fun x ↦ Option.map f x) t htb)) := fun {α β} [inst : Ord.{u} #1] [inst : Std.LawfulEqOrd #2] {t a f} htb ↦ Std.DTreeMap.Internal.Impl.rec (fun sz k v l r ihl ihr htb ↦ let hmb : Std.DTreeMap.Internal.Impl.Balanced (Std.DTreeMap.Internal.Impl.modify a f (Std.DTreeMap.Internal.Impl.inner sz k v l r)) := Std.DTreeMap.Internal.Impl.balanced_modify htb
Eq.mpr (id (congrArg (fun _a ↦ Eq _a (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.alter a (fun x ↦ Option.map f x) (Std.DTreeMap.Internal.Impl.inner sz k v l r) htb))) (Std.DTreeMap.Internal.Impl.modify.eq_2 a f sz k v l r))) (Eq.mpr (id (congrArg (fun _a ↦ Eq (Std.DTreeMap.Internal.Impl.alter.match_3.{(max u v) + 1} (fun x ↦ Std.DTreeMap.Internal.Impl β) (Ord.compare a k) (fun h ↦ Std.DTreeMap.Internal.Impl.inner sz k v (Std.DTreeMap.Internal.Impl.modify a f l) r) (fun h ↦ Std.DTreeMap.Internal.Impl.inner sz k v l (Std.DTreeMap.Internal.Impl.modify a f r)) fun h ↦ Std.DTreeMap.Internal.Impl.inner sz a (f (cast (Std.DTreeMap.Internal.Impl.alter._proof_3 a k h) v)) l r) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl _a)) (Std.DTreeMap.Internal.Impl.alter.eq_2 a (fun x ↦ Option.map f x) sz k v l r htb))) (_private.Std.Data.DTreeMap.Internal.WF.Lemmas.0.Std.DTreeMap.Internal.Impl.alter.match_3.splitter.{0} (fun x ↦ Eq (Ord.compare a k) x → Std.DTreeMap.Internal.Impl.Balanced (Std.DTreeMap.Internal.Impl.alter.match_3.{(max u v) + 1} (fun x ↦ Std.DTreeMap.Internal.Impl β) (Ord.compare a k) (fun h ↦ Std.DTreeMap.Internal.Impl.inner sz k v (Std.DTreeMap.Internal.Impl.modify a f l) r) (fun h ↦ Std.DTreeMap.Internal.Impl.inner sz k v l (Std.DTreeMap.Internal.Impl.modify a f r)) fun h ↦ Std.DTreeMap.Internal.Impl.inner sz a (f (cast (Std.DTreeMap.Internal.Impl.alter._proof_3 a k (Eq.trans (Eq.refl (Ord.compare a k)) h)) v)) l r) → Eq (Std.DTreeMap.Internal.Impl.alter.match_3.{(max u v) + 1} (fun x ↦ Std.DTreeMap.Internal.Impl β) (Ord.compare a k) (fun h ↦ Std.DTreeMap.Internal.Impl.inner sz k v (Std.DTreeMap.Internal.Impl.modify a f l) r) (fun h ↦ Std.DTreeMap.Internal.Impl.inner sz k v l (Std.DTreeMap.Internal.Impl.modify a f r)) fun h ↦ Std.DTreeMap.Internal.Impl.inner sz a (f (cast (Std.DTreeMap.Internal.Impl.alter._proof_3 a k (Eq.trans (Eq.refl (Ord.compare a k)) h)) v)) l r) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.alter.match_3.{(max u v) + 1} (fun x ↦ Std.DTreeMap.Internal.Impl.SizedBalancedTree.{u, v} α β (HSub.hSub (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner sz k v l r)) (OfNat.ofNat 1)) (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner sz k v l r)) (OfNat.ofNat 1))) (Ord.compare a k) (fun h ↦ Std.DTreeMap.Internal.Impl.alter.match_1 l (fun x ↦ Std.DTreeMap.Internal.Impl.SizedBalancedTree.{u, v} α β (HSub.hSub (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner sz k v l r)) (OfNat.ofNat 1)) (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner sz k v l r)) (OfNat.ofNat 1))) (Std.DTreeMap.Internal.Impl.alter a (fun x ↦ Option.map f x) l (Std.DTreeMap.Internal.Impl.minView._proof_9 sz k v l r htb)) fun d hd hd'₁ hd'₂ ↦ Std.DTreeMap.Internal.Impl.SizedBalancedTree.mk (Std.DTreeMap.Internal.Impl.balance k v d r (Std.DTreeMap.Internal.Impl.minView._proof_15 sz k v l r htb d hd) (Std.DTreeMap.Internal.Impl.minView._proof_11 sz k v l r htb) (Std.DTreeMap.Internal.Impl.alter._proof_1 sz k v l r htb d hd'₁ hd'₂)) (Std.DTreeMap.Internal.Impl.alter._proof_13 sz k v l r htb d hd hd'₁ hd'₂) (Std.DTreeMap.Internal.Impl.alter._proof_15 sz k v l r htb d hd hd'₁ hd'₂) (Std.DTreeMap.Internal.Impl.alter._proof_18 sz k v l r htb d hd hd'₁ hd'₂)) (fun h ↦ Std.DTreeMap.Internal.Impl.alter.match_1 r (fun x ↦ Std.DTreeMap.Internal.Impl.SizedBalancedTree.{u, v} α β (HSub.hSub (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner sz k v l r)) (OfNat.ofNat 1)) (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner sz k v l r)) (OfNat.ofNat 1))) (Std.DTreeMap.Internal.Impl.alter a (fun x ↦ Option.map f x) r (Std.DTreeMap.Internal.Impl.minView._proof_11 sz k v l r htb)) fun d hd hd'₁ hd'₂ ↦ Std.DTreeMap.Internal.Impl.SizedBalancedTree.mk (Std.DTreeMap.Internal.Impl.balance k v l d (Std.DTreeMap.Internal.Impl.minView._proof_9 sz k v l r htb) (Std.DTreeMap.Internal.Impl.minView._proof_15 sz k v l r htb d hd) (Std.DTreeMap.Internal.Impl.alter._proof_2 sz k v l r htb d hd'₁ hd'₂)) (Std.DTreeMap.Internal.Impl.alter._proof_20 sz k v l r htb d hd hd'₁ hd'₂) (Std.DTreeMap.Internal.Impl.alter._proof_22 sz k v l r htb d hd hd'₁ hd'₂) (Std.DTreeMap.Internal.Impl.alter._proof_25 sz k v l r htb d hd hd'₁ hd'₂)) fun h ↦ Std.DTreeMap.Internal.Impl.«getThenInsertIfNew?».match_1 a (fun x ↦ Std.DTreeMap.Internal.Impl.SizedBalancedTree.{u, v} α β (HSub.hSub (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner sz k v l r)) (OfNat.ofNat 1)) (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner sz k v l r)) (OfNat.ofNat 1))) (Option.map f (Option.some (cast (Std.DTreeMap.Internal.Impl.alter._proof_3 a k (Eq.trans (Eq.refl (Ord.compare a k)) h)) v))) (fun _ ↦ Std.DTreeMap.Internal.Impl.SizedBalancedTree.mk (Std.DTreeMap.Internal.Impl.glue l r (Std.DTreeMap.Internal.Impl.minView._proof_9 sz k v l r htb) (Std.DTreeMap.Internal.Impl.minView._proof_11 sz k v l r htb) (Std.DTreeMap.Internal.Impl.minView._proof_13 sz k v l r htb)) (Std.DTreeMap.Internal.Impl.erase._proof_34 sz k v l r htb) (Std.DTreeMap.Internal.Impl.erase._proof_36 sz k v l r htb) (Std.DTreeMap.Internal.Impl.alter._proof_28 sz k v l r htb)) fun v ↦ Std.DTreeMap.Internal.Impl.SizedBalancedTree.mk (Std.DTreeMap.Internal.Impl.inner sz a v l r) (Std.DTreeMap.Internal.Impl.alter._proof_30 a sz k v l r htb v) (Std.DTreeMap.Internal.Impl.alter._proof_33 a sz k v l r htb v) (Std.DTreeMap.Internal.Impl.alter._proof_35 a sz k v l r htb v)))) (Ord.compare a k) (fun h h ↦ Eq.ndrec (fun heq ↦ id fun hmb ↦ of_eq_true (Eq.trans (congrArg (Eq (Std.DTreeMap.Internal.Impl.inner sz k v (Std.DTreeMap.Internal.Impl.modify a f l) r)) (Eq.trans (Std.DTreeMap.Internal.Impl.balance.congr_simp k v v (Eq.refl v) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.alter a (fun x ↦ Option.map f x) l (Std.DTreeMap.Internal.Impl.minView._proof_9 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.modify a f l) (Eq.symm (ihl (Std.DTreeMap.Internal.Impl.Balanced.left htb))) r r (Eq.refl r) (Std.DTreeMap.Internal.Impl.minView._proof_15 sz k v l r htb (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.alter a (fun x ↦ Option.map f x) l (Std.DTreeMap.Internal.Impl.minView._proof_9 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.balanced_impl (Std.DTreeMap.Internal.Impl.alter a (fun x ↦ Option.map f x) l (Std.DTreeMap.Internal.Impl.minView._proof_9 sz k v l r htb)))) (Std.DTreeMap.Internal.Impl.minView._proof_11 sz k v l r htb) (Std.DTreeMap.Internal.Impl.alter._proof_1 sz k v l r htb (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.alter a (fun x ↦ Option.map f x) l (Std.DTreeMap.Internal.Impl.minView._proof_9 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.lb_le_size_impl (Std.DTreeMap.Internal.Impl.alter a (fun x ↦ Option.map f x) l (Std.DTreeMap.Internal.Impl.minView._proof_9 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.size_impl_le_ub (Std.DTreeMap.Internal.Impl.alter a (fun x ↦ Option.map f x) l (Std.DTreeMap.Internal.Impl.minView._proof_9 sz k v l r htb))))) ((fun x_0 ↦ (fun x_0 ↦ Std.DTreeMap.Internal.Impl.balance_eq_inner hmb) x_0) (Eq.ndrec (Eq.ndrec (Std.DTreeMap.Internal.Impl.alter._proof_1 sz k v l r htb (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.alter a (fun x ↦ Option.map f x) l (Std.DTreeMap.Internal.Impl.minView._proof_9 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.lb_le_size_impl (Std.DTreeMap.Internal.Impl.alter a (fun x ↦ Option.map f x) l (Std.DTreeMap.Internal.Impl.minView._proof_9 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.size_impl_le_ub (Std.DTreeMap.Internal.Impl.alter a (fun x ↦ Option.map f x) l (Std.DTreeMap.Internal.Impl.minView._proof_9 sz k v l r htb)))) (Eq.refl r)) (Eq.symm (ihl (Std.DTreeMap.Internal.Impl.Balanced.left htb))))))) (eq_self (Std.DTreeMap.Internal.Impl.inner sz k v (Std.DTreeMap.Internal.Impl.modify a f l) r)))) (Eq.symm h) (Eq.refl (Ord.compare a k))) (fun h h ↦ Eq.ndrec (fun heq ↦ id fun hmb ↦ of_eq_true (Eq.trans (congrArg (Eq (Std.DTreeMap.Internal.Impl.inner sz k v l (Std.DTreeMap.Internal.Impl.modify a f r))) (Eq.trans (Std.DTreeMap.Internal.Impl.balance.congr_simp k v v (Eq.refl v) l l (Eq.refl l) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.alter a (fun x ↦ Option.map f x) r (Std.DTreeMap.Internal.Impl.minView._proof_11 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.modify a f r) (Eq.symm (ihr (Std.DTreeMap.Internal.Impl.Balanced.right htb))) (Std.DTreeMap.Internal.Impl.minView._proof_9 sz k v l r htb) (Std.DTreeMap.Internal.Impl.minView._proof_15 sz k v l r htb (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.alter a (fun x ↦ Option.map f x) r (Std.DTreeMap.Internal.Impl.minView._proof_11 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.balanced_impl (Std.DTreeMap.Internal.Impl.alter a (fun x ↦ Option.map f x) r (Std.DTreeMap.Internal.Impl.minView._proof_11 sz k v l r htb)))) (Std.DTreeMap.Internal.Impl.alter._proof_2 sz k v l r htb (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.alter a (fun x ↦ Option.map f x) r (Std.DTreeMap.Internal.Impl.minView._proof_11 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.lb_le_size_impl (Std.DTreeMap.Internal.Impl.alter a (fun x ↦ Option.map f x) r (Std.DTreeMap.Internal.Impl.minView._proof_11 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.size_impl_le_ub (Std.DTreeMap.Internal.Impl.alter a (fun x ↦ Option.map f x) r (Std.DTreeMap.Internal.Impl.minView._proof_11 sz k v l r htb))))) ((fun x_0 ↦ (fun x_0 ↦ Std.DTreeMap.Internal.Impl.balance_eq_inner hmb) x_0) (Eq.ndrec (Std.DTreeMap.Internal.Impl.alter._proof_2 sz k v l r htb (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.alter a (fun x ↦ Option.map f x) r (Std.DTreeMap.Internal.Impl.minView._proof_11 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.lb_le_size_impl (Std.DTreeMap.Internal.Impl.alter a (fun x ↦ Option.map f x) r (Std.DTreeMap.Internal.Impl.minView._proof_11 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.size_impl_le_ub (Std.DTreeMap.Internal.Impl.alter a (fun x ↦ Option.map f x) r (Std.DTreeMap.Internal.Impl.minView._proof_11 sz k v l r htb)))) (Eq.symm (ihr (Std.DTreeMap.Internal.Impl.Balanced.right htb))))))) (eq_self (Std.DTreeMap.Internal.Impl.inner sz k v l (Std.DTreeMap.Internal.Impl.modify a f r))))) (Eq.symm h) (Eq.refl (Ord.compare a k))) (fun h h ↦ Eq.ndrec (fun heq ↦ id fun hmb ↦ Eq.refl (Std.DTreeMap.Internal.Impl.inner sz a (f (cast (Std.DTreeMap.Internal.Impl.alter._proof_3 a k (Eq.trans heq (Eq.refl Ordering.eq))) v)) l r)) (Eq.symm h) (Eq.refl (Ord.compare a k))) (Eq.refl (Ord.compare a k)) (Eq.mp (congrArg (fun l ↦ Std.DTreeMap.Internal.Impl.Balanced l) (Std.DTreeMap.Internal.Impl.modify.eq_2 a f sz k v l r)) hmb)))) (fun htb ↦ Eq.refl (Std.DTreeMap.Internal.Impl.modify a f (Std.DTreeMap.Internal.Impl.leaf))) t htb
has type
  (size : Nat) → (k : α) → (v : β k) → (l : Std.DTreeMap.Internal.Impl β) → (r : Std.DTreeMap.Internal.Impl β) → (fun x ↦ (hr : Std.DTreeMap.Internal.Impl.Balanced x) → (h : Or (Std.DTreeMap.Internal.Impl.BalanceLErasePrecond (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k v l r)) (Std.DTreeMap.Internal.Impl.size x)) (Std.DTreeMap.Internal.Impl.BalanceLErasePrecond (Std.DTreeMap.Internal.Impl.size x) (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k v l r)))) → (fun r hr h ↦ Std.DTreeMap.Internal.Impl β) x hr h) l → (fun x ↦ (hr : Std.DTreeMap.Internal.Impl.Balanced x) → (h : Or (Std.DTreeMap.Internal.Impl.BalanceLErasePrecond (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k v l r)) (Std.DTreeMap.Internal.Impl.size x)) (Std.DTreeMap.Internal.Impl.BalanceLErasePrecond (Std.DTreeMap.Internal.Impl.size x) (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k v l r)))) → (fun r hr h ↦ Std.DTreeMap.Internal.Impl β) x hr h) r → Std.DTreeMap.Internal.Impl.Balanced (Std.DTreeMap.Internal.Impl.inner size k v l r) → Or (Std.DTreeMap.Internal.Impl.BalanceLErasePrecond (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k v l r)) (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k v l r))) (Std.DTreeMap.Internal.Impl.BalanceLErasePrecond (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k v l r)) (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k v l r))) → Std.DTreeMap.Internal.Impl β
but is expected to have type
  (size : Nat) → (k : α) → (v : β k) → (l : Std.DTreeMap.Internal.Impl β) → (r : Std.DTreeMap.Internal.Impl β) → (fun x ↦ (hr : Std.DTreeMap.Internal.Impl.Balanced x) → (h : Or (Std.DTreeMap.Internal.Impl.BalanceLErasePrecond (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k v l r)) (Std.DTreeMap.Internal.Impl.size x)) (Std.DTreeMap.Internal.Impl.BalanceLErasePrecond (Std.DTreeMap.Internal.Impl.size x) (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k v l r)))) → (fun r hr h ↦ Std.DTreeMap.Internal.Impl β) x hr h) l → (fun x ↦ (hr : Std.DTreeMap.Internal.Impl.Balanced x) → (h : Or (Std.DTreeMap.Internal.Impl.BalanceLErasePrecond (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k v l r)) (Std.DTreeMap.Internal.Impl.size x)) (Std.DTreeMap.Internal.Impl.BalanceLErasePrecond (Std.DTreeMap.Internal.Impl.size x) (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k v l r)))) → (fun r hr h ↦ Std.DTreeMap.Internal.Impl β) x hr h) r → (fun x ↦ (hr : Std.DTreeMap.Internal.Impl.Balanced x) → (h : Or (Std.DTreeMap.Internal.Impl.BalanceLErasePrecond (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k v l r)) (Std.DTreeMap.Internal.Impl.size x)) (Std.DTreeMap.Internal.Impl.BalanceLErasePrecond (Std.DTreeMap.Internal.Impl.size x) (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k v l r)))) → (fun r hr h ↦ Std.DTreeMap.Internal.Impl β) x hr h) (Std.DTreeMap.Internal.Impl.inner size k v l r)
theorem Std.DTreeMap.Internal.Impl.Const.modify_eq_alter.{u, v} : ∀ {α : Type u}, ∀ {β : Type v}, ∀ [inst : Ord.{u} α], [Std.TransOrd α] → ∀ {t : Std.DTreeMap.Internal.Impl fun x ↦ β}, ∀ {a : α}, ∀ {f : β → β}, ∀ (htb : Std.DTreeMap.Internal.Impl.Balanced t), Eq (Std.DTreeMap.Internal.Impl.Const.modify a f t) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.Const.alter a (fun x ↦ Option.map f x) t htb)) := fun {α β} [inst : Ord.{u} #1] [inst : Std.TransOrd #2] {t a f} htb ↦ Std.DTreeMap.Internal.Impl.rec (fun sz k v l r ihl ihr htb ↦ let hmb : Std.DTreeMap.Internal.Impl.Balanced (Std.DTreeMap.Internal.Impl.Const.modify a f (Std.DTreeMap.Internal.Impl.inner sz k v l r)) := Std.DTreeMap.Internal.Impl.Const.balanced_modify htb
Eq.mpr (id (congrArg (fun _a ↦ Eq _a (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.Const.alter a (fun x ↦ Option.map f x) (Std.DTreeMap.Internal.Impl.inner sz k v l r) htb))) (Std.DTreeMap.Internal.Impl.Const.modify.eq_2 a f sz k v l r))) (Eq.mpr (id (congrArg (fun _a ↦ Eq (Std.DTreeMap.Internal.Impl.insert.match_3.{(max u v) + 1} (fun x ↦ Std.DTreeMap.Internal.Impl fun x ↦ β) (Ord.compare a k) (fun _ ↦ Std.DTreeMap.Internal.Impl.inner sz k v (Std.DTreeMap.Internal.Impl.Const.modify a f l) r) (fun _ ↦ Std.DTreeMap.Internal.Impl.inner sz k v l (Std.DTreeMap.Internal.Impl.Const.modify a f r)) fun _ ↦ Std.DTreeMap.Internal.Impl.inner sz a (f v) l r) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl _a)) (Std.DTreeMap.Internal.Impl.Const.alter.eq_2 a (fun x ↦ Option.map f x) sz k v l r htb))) (_private.Std.Data.DTreeMap.Internal.WF.Lemmas.0.Std.DTreeMap.Internal.Impl.insert.match_3.splitter.{0} (fun x ↦ Eq (Ord.compare a k) x → Std.DTreeMap.Internal.Impl.Balanced (Std.DTreeMap.Internal.Impl.insert.match_3.{(max u v) + 1} (fun x ↦ Std.DTreeMap.Internal.Impl fun x ↦ β) (Ord.compare a k) (fun _ ↦ Std.DTreeMap.Internal.Impl.inner sz k v (Std.DTreeMap.Internal.Impl.Const.modify a f l) r) (fun _ ↦ Std.DTreeMap.Internal.Impl.inner sz k v l (Std.DTreeMap.Internal.Impl.Const.modify a f r)) fun _ ↦ Std.DTreeMap.Internal.Impl.inner sz a (f v) l r) → Eq (Std.DTreeMap.Internal.Impl.insert.match_3.{(max u v) + 1} (fun x ↦ Std.DTreeMap.Internal.Impl fun x ↦ β) (Ord.compare a k) (fun _ ↦ Std.DTreeMap.Internal.Impl.inner sz k v (Std.DTreeMap.Internal.Impl.Const.modify a f l) r) (fun _ ↦ Std.DTreeMap.Internal.Impl.inner sz k v l (Std.DTreeMap.Internal.Impl.Const.modify a f r)) fun _ ↦ Std.DTreeMap.Internal.Impl.inner sz a (f v) l r) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.insert.match_3.{(max u v) + 1} (fun x ↦ Std.DTreeMap.Internal.Impl.SizedBalancedTree.{u, v} α (fun x ↦ β) (HSub.hSub (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner sz k v l r)) (OfNat.ofNat 1)) (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner sz k v l r)) (OfNat.ofNat 1))) (Ord.compare a k) (fun _ ↦ Std.DTreeMap.Internal.Impl.Const.alter.match_1 l (fun x ↦ Std.DTreeMap.Internal.Impl.SizedBalancedTree.{u, v} α (fun x ↦ β) (HSub.hSub (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner sz k v l r)) (OfNat.ofNat 1)) (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner sz k v l r)) (OfNat.ofNat 1))) (Std.DTreeMap.Internal.Impl.Const.alter a (fun x ↦ Option.map f x) l (Std.DTreeMap.Internal.Impl.Const.alter._proof_18 sz k v l r htb)) fun d hd hd'₁ hd'₂ ↦ Std.DTreeMap.Internal.Impl.SizedBalancedTree.mk (Std.DTreeMap.Internal.Impl.balance k v d r (Std.DTreeMap.Internal.Impl.Const.alter._proof_20 sz k v l r htb d hd) (Std.DTreeMap.Internal.Impl.Const.alter._proof_22 sz k v l r htb) (Std.DTreeMap.Internal.Impl.Const.alter._proof_1 sz k v l r htb d hd'₁ hd'₂)) (Std.DTreeMap.Internal.Impl.Const.alter._proof_24 sz k v l r htb d hd hd'₁ hd'₂) (Std.DTreeMap.Internal.Impl.Const.alter._proof_27 sz k v l r htb d hd hd'₁ hd'₂) (Std.DTreeMap.Internal.Impl.Const.alter._proof_30 sz k v l r htb d hd hd'₁ hd'₂)) (fun _ ↦ Std.DTreeMap.Internal.Impl.Const.alter.match_1 r (fun x ↦ Std.DTreeMap.Internal.Impl.SizedBalancedTree.{u, v} α (fun x ↦ β) (HSub.hSub (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner sz k v l r)) (OfNat.ofNat 1)) (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner sz k v l r)) (OfNat.ofNat 1))) (Std.DTreeMap.Internal.Impl.Const.alter a (fun x ↦ Option.map f x) r (Std.DTreeMap.Internal.Impl.Const.alter._proof_22 sz k v l r htb)) fun d hd hd'₁ hd'₂ ↦ Std.DTreeMap.Internal.Impl.SizedBalancedTree.mk (Std.DTreeMap.Internal.Impl.balance k v l d (Std.DTreeMap.Internal.Impl.Const.alter._proof_18 sz k v l r htb) (Std.DTreeMap.Internal.Impl.Const.alter._proof_20 sz k v l r htb d hd) (Std.DTreeMap.Internal.Impl.Const.alter._proof_2 sz k v l r htb d hd'₁ hd'₂)) (Std.DTreeMap.Internal.Impl.Const.alter._proof_32 sz k v l r htb d hd hd'₁ hd'₂) (Std.DTreeMap.Internal.Impl.Const.alter._proof_35 sz k v l r htb d hd hd'₁ hd'₂) (Std.DTreeMap.Internal.Impl.Const.alter._proof_38 sz k v l r htb d hd hd'₁ hd'₂)) fun _ ↦ Std.DTreeMap.Internal.Impl.Const.«getThenInsertIfNew?».match_1 (fun x ↦ Std.DTreeMap.Internal.Impl.SizedBalancedTree.{u, v} α (fun x ↦ β) (HSub.hSub (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner sz k v l r)) (OfNat.ofNat 1)) (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner sz k v l r)) (OfNat.ofNat 1))) (Option.map f (Option.some v)) (fun _ ↦ Std.DTreeMap.Internal.Impl.SizedBalancedTree.mk (Std.DTreeMap.Internal.Impl.glue l r (Std.DTreeMap.Internal.Impl.Const.alter._proof_18 sz k v l r htb) (Std.DTreeMap.Internal.Impl.Const.alter._proof_22 sz k v l r htb) (Std.DTreeMap.Internal.Impl.Const.alter._proof_40 sz k v l r htb)) (Std.DTreeMap.Internal.Impl.Const.alter._proof_42 sz k v l r htb) (Std.DTreeMap.Internal.Impl.Const.alter._proof_45 sz k v l r htb) (Std.DTreeMap.Internal.Impl.Const.alter._proof_48 sz k v l r htb)) fun v ↦ Std.DTreeMap.Internal.Impl.SizedBalancedTree.mk (Std.DTreeMap.Internal.Impl.inner sz a v l r) (Std.DTreeMap.Internal.Impl.Const.alter._proof_50 a sz k v l r htb v) (Std.DTreeMap.Internal.Impl.Const.alter._proof_53 a sz k v l r htb v) (Std.DTreeMap.Internal.Impl.Const.alter._proof_56 a sz k v l r htb v)))) (Ord.compare a k) (fun a h ↦ Eq.ndrec (fun heq ↦ id fun hmb ↦ id (of_eq_true (Eq.trans (congrArg (Eq (Std.DTreeMap.Internal.Impl.inner sz k v (Std.DTreeMap.Internal.Impl.Const.modify a f l) r)) (Eq.trans (Std.DTreeMap.Internal.Impl.balance.congr_simp k v v (Eq.refl v) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.Const.alter a (fun x ↦ Option.map f x) l (Std.DTreeMap.Internal.Impl.Const.alter._proof_18 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.Const.modify a f l) (Eq.symm (ihl (Std.DTreeMap.Internal.Impl.Balanced.left htb))) r r (Eq.refl r) (Std.DTreeMap.Internal.Impl.Const.alter._proof_20 sz k v l r htb (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.Const.alter a (fun x ↦ Option.map f x) l (Std.DTreeMap.Internal.Impl.Const.alter._proof_18 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.balanced_impl (Std.DTreeMap.Internal.Impl.Const.alter a (fun x ↦ Option.map f x) l (Std.DTreeMap.Internal.Impl.Const.alter._proof_18 sz k v l r htb)))) (Std.DTreeMap.Internal.Impl.Const.alter._proof_22 sz k v l r htb) (Std.DTreeMap.Internal.Impl.Const.alter._proof_1 sz k v l r htb (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.Const.alter a (fun x ↦ Option.map f x) l (Std.DTreeMap.Internal.Impl.Const.alter._proof_18 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.lb_le_size_impl (Std.DTreeMap.Internal.Impl.Const.alter a (fun x ↦ Option.map f x) l (Std.DTreeMap.Internal.Impl.Const.alter._proof_18 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.size_impl_le_ub (Std.DTreeMap.Internal.Impl.Const.alter a (fun x ↦ Option.map f x) l (Std.DTreeMap.Internal.Impl.Const.alter._proof_18 sz k v l r htb))))) ((fun x_0 ↦ (fun x_0 ↦ Std.DTreeMap.Internal.Impl.balance_eq_inner hmb) x_0) (Eq.ndrec (Eq.ndrec (Std.DTreeMap.Internal.Impl.Const.alter._proof_1 sz k v l r htb (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.Const.alter a (fun x ↦ Option.map f x) l (Std.DTreeMap.Internal.Impl.Const.alter._proof_18 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.lb_le_size_impl (Std.DTreeMap.Internal.Impl.Const.alter a (fun x ↦ Option.map f x) l (Std.DTreeMap.Internal.Impl.Const.alter._proof_18 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.size_impl_le_ub (Std.DTreeMap.Internal.Impl.Const.alter a (fun x ↦ Option.map f x) l (Std.DTreeMap.Internal.Impl.Const.alter._proof_18 sz k v l r htb)))) (Eq.refl r)) (Eq.symm (ihl (Std.DTreeMap.Internal.Impl.Balanced.left htb))))))) (eq_self (Std.DTreeMap.Internal.Impl.inner sz k v (Std.DTreeMap.Internal.Impl.Const.modify a f l) r))))) (Eq.symm h) (Eq.refl (Ord.compare a k))) (fun a h ↦ Eq.ndrec (fun heq ↦ id fun hmb ↦ id (of_eq_true (Eq.trans (congrArg (Eq (Std.DTreeMap.Internal.Impl.inner sz k v l (Std.DTreeMap.Internal.Impl.Const.modify a f r))) (Eq.trans (Std.DTreeMap.Internal.Impl.balance.congr_simp k v v (Eq.refl v) l l (Eq.refl l) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.Const.alter a (fun x ↦ Option.map f x) r (Std.DTreeMap.Internal.Impl.Const.alter._proof_22 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.Const.modify a f r) (Eq.symm (ihr (Std.DTreeMap.Internal.Impl.Balanced.right htb))) (Std.DTreeMap.Internal.Impl.Const.alter._proof_18 sz k v l r htb) (Std.DTreeMap.Internal.Impl.Const.alter._proof_20 sz k v l r htb (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.Const.alter a (fun x ↦ Option.map f x) r (Std.DTreeMap.Internal.Impl.Const.alter._proof_22 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.balanced_impl (Std.DTreeMap.Internal.Impl.Const.alter a (fun x ↦ Option.map f x) r (Std.DTreeMap.Internal.Impl.Const.alter._proof_22 sz k v l r htb)))) (Std.DTreeMap.Internal.Impl.Const.alter._proof_2 sz k v l r htb (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.Const.alter a (fun x ↦ Option.map f x) r (Std.DTreeMap.Internal.Impl.Const.alter._proof_22 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.lb_le_size_impl (Std.DTreeMap.Internal.Impl.Const.alter a (fun x ↦ Option.map f x) r (Std.DTreeMap.Internal.Impl.Const.alter._proof_22 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.size_impl_le_ub (Std.DTreeMap.Internal.Impl.Const.alter a (fun x ↦ Option.map f x) r (Std.DTreeMap.Internal.Impl.Const.alter._proof_22 sz k v l r htb))))) ((fun x_0 ↦ (fun x_0 ↦ Std.DTreeMap.Internal.Impl.balance_eq_inner hmb) x_0) (Eq.ndrec (Std.DTreeMap.Internal.Impl.Const.alter._proof_2 sz k v l r htb (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.Const.alter a (fun x ↦ Option.map f x) r (Std.DTreeMap.Internal.Impl.Const.alter._proof_22 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.lb_le_size_impl (Std.DTreeMap.Internal.Impl.Const.alter a (fun x ↦ Option.map f x) r (Std.DTreeMap.Internal.Impl.Const.alter._proof_22 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.size_impl_le_ub (Std.DTreeMap.Internal.Impl.Const.alter a (fun x ↦ Option.map f x) r (Std.DTreeMap.Internal.Impl.Const.alter._proof_22 sz k v l r htb)))) (Eq.symm (ihr (Std.DTreeMap.Internal.Impl.Balanced.right htb))))))) (eq_self (Std.DTreeMap.Internal.Impl.inner sz k v l (Std.DTreeMap.Internal.Impl.Const.modify a f r)))))) (Eq.symm h) (Eq.refl (Ord.compare a k))) (fun a h ↦ Eq.ndrec (fun heq ↦ id fun hmb ↦ Eq.refl (Std.DTreeMap.Internal.Impl.inner sz a (f v) l r)) (Eq.symm h) (Eq.refl (Ord.compare a k))) (Eq.refl (Ord.compare a k)) (Eq.mp (congrArg (fun _a ↦ Std.DTreeMap.Internal.Impl.Balanced _a) (Std.DTreeMap.Internal.Impl.Const.modify.eq_2 a f sz k v l r)) hmb)))) (fun htb ↦ Eq.refl (Std.DTreeMap.Internal.Impl.Const.modify a f (Std.DTreeMap.Internal.Impl.leaf))) t htb
has type
  (size : Nat) → (k : α) → (v : (fun x ↦ β) k) → (l : Std.DTreeMap.Internal.Impl fun x ↦ β) → (r : Std.DTreeMap.Internal.Impl fun x ↦ β) → (fun x ↦ (hr : Std.DTreeMap.Internal.Impl.Balanced x) → (h : Or (Std.DTreeMap.Internal.Impl.BalanceLErasePrecond (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k v l r)) (Std.DTreeMap.Internal.Impl.size x)) (Std.DTreeMap.Internal.Impl.BalanceLErasePrecond (Std.DTreeMap.Internal.Impl.size x) (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k v l r)))) → (fun r hr h ↦ Std.DTreeMap.Internal.Impl fun x ↦ β) x hr h) l → (fun x ↦ (hr : Std.DTreeMap.Internal.Impl.Balanced x) → (h : Or (Std.DTreeMap.Internal.Impl.BalanceLErasePrecond (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k v l r)) (Std.DTreeMap.Internal.Impl.size x)) (Std.DTreeMap.Internal.Impl.BalanceLErasePrecond (Std.DTreeMap.Internal.Impl.size x) (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k v l r)))) → (fun r hr h ↦ Std.DTreeMap.Internal.Impl fun x ↦ β) x hr h) r → Std.DTreeMap.Internal.Impl.Balanced (Std.DTreeMap.Internal.Impl.inner size k v l r) → Or (Std.DTreeMap.Internal.Impl.BalanceLErasePrecond (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k v l r)) (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k v l r))) (Std.DTreeMap.Internal.Impl.BalanceLErasePrecond (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k v l r)) (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k v l r))) → Std.DTreeMap.Internal.Impl fun x ↦ β
but is expected to have type
  (size : Nat) → (k : α) → (v : (fun x ↦ β) k) → (l : Std.DTreeMap.Internal.Impl fun x ↦ β) → (r : Std.DTreeMap.Internal.Impl fun x ↦ β) → (fun x ↦ (hr : Std.DTreeMap.Internal.Impl.Balanced x) → (h : Or (Std.DTreeMap.Internal.Impl.BalanceLErasePrecond (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k v l r)) (Std.DTreeMap.Internal.Impl.size x)) (Std.DTreeMap.Internal.Impl.BalanceLErasePrecond (Std.DTreeMap.Internal.Impl.size x) (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k v l r)))) → (fun r hr h ↦ Std.DTreeMap.Internal.Impl fun x ↦ β) x hr h) l → (fun x ↦ (hr : Std.DTreeMap.Internal.Impl.Balanced x) → (h : Or (Std.DTreeMap.Internal.Impl.BalanceLErasePrecond (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k v l r)) (Std.DTreeMap.Internal.Impl.size x)) (Std.DTreeMap.Internal.Impl.BalanceLErasePrecond (Std.DTreeMap.Internal.Impl.size x) (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k v l r)))) → (fun r hr h ↦ Std.DTreeMap.Internal.Impl fun x ↦ β) x hr h) r → (fun x ↦ (hr : Std.DTreeMap.Internal.Impl.Balanced x) → (h : Or (Std.DTreeMap.Internal.Impl.BalanceLErasePrecond (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k v l r)) (Std.DTreeMap.Internal.Impl.size x)) (Std.DTreeMap.Internal.Impl.BalanceLErasePrecond (Std.DTreeMap.Internal.Impl.size x) (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k v l r)))) → (fun r hr h ↦ Std.DTreeMap.Internal.Impl fun x ↦ β) x hr h) (Std.DTreeMap.Internal.Impl.inner size k v l r)
theorem Std.DTreeMap.Internal.Impl.link._unary.eq_def.{u, v} : ∀ {α : Type u}, ∀ {β : α → Type v}, ∀ (k : α), ∀ (v : β k), ∀ (_x : PSigma fun l ↦ PSigma fun r ↦ PSigma fun hl ↦ Std.DTreeMap.Internal.Impl.Balanced r), Eq (Std.DTreeMap.Internal.Impl.link._unary k v _x) (PSigma.casesOn _x fun l r ↦ PSigma.casesOn r fun r hl ↦ PSigma.casesOn hl fun hl hr ↦ Std.DTreeMap.Internal.Impl.insertMin.match_3 (fun l hl ↦ Std.DTreeMap.Internal.Impl.Tree.{u, v} α β (HAdd.hAdd (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size l) (OfNat.ofNat 1)) (Std.DTreeMap.Internal.Impl.size r))) l hl (fun hl ↦ let d : Std.DTreeMap.Internal.Impl.Tree.{u, v} α β (HAdd.hAdd (OfNat.ofNat 1) (Std.DTreeMap.Internal.Impl.size r)) := Std.DTreeMap.Internal.Impl.insertMin k v r (Std.DTreeMap.Internal.Impl.link._proof_6 r hr)
Std.DTreeMap.Internal.Impl.Tree.mk (Std.DTreeMap.Internal.Impl.Tree.impl d) (Std.DTreeMap.Internal.Impl.link._proof_8 k v r hr) (Std.DTreeMap.Internal.Impl.link._proof_10 k v r hr)) fun szl k' v' l' r' hl ↦ Std.DTreeMap.Internal.Impl.insertMin.match_3 (fun r hr ↦ Std.DTreeMap.Internal.Impl.Tree.{u, v} α β (HAdd.hAdd (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner szl k' v' l' r')) (OfNat.ofNat 1)) (Std.DTreeMap.Internal.Impl.size r))) r hr (fun hr ↦ let d : Std.DTreeMap.Internal.Impl.Tree.{u, v} α β (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner szl k' v' l' r')) (OfNat.ofNat 1)) := Std.DTreeMap.Internal.Impl.insertMax k v (Std.DTreeMap.Internal.Impl.inner szl k' v' l' r') (Std.DTreeMap.Internal.Impl.link._proof_12 szl k' v' l' r' hl)
Std.DTreeMap.Internal.Impl.Tree.mk (Std.DTreeMap.Internal.Impl.Tree.impl d) (Std.DTreeMap.Internal.Impl.link._proof_14 k v szl k' v' l' r' hl) (Std.DTreeMap.Internal.Impl.link._proof_16 k v szl k' v' l' r' hl)) fun szr k'' v'' l'' r'' hr ↦ dite (LT.lt (HMul.hMul Std.DTreeMap.Internal.delta szl) szr) (fun h₁ ↦ Std.DTreeMap.Internal.Impl.link.match_1 szl k' v' l' r' l'' (fun x ↦ Std.DTreeMap.Internal.Impl.Tree.{u, v} α β (HAdd.hAdd (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner szl k' v' l' r')) (OfNat.ofNat 1)) (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner szr k'' v'' l'' r'')))) (Std.DTreeMap.Internal.Impl.link._unary k v (PSigma.mk (Std.DTreeMap.Internal.Impl.inner szl k' v' l' r') (PSigma.mk l'' (PSigma.mk (Std.DTreeMap.Internal.Impl.link._proof_18 szl k' v' l' r' hl szr k'' v'' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_4 szl k' v' l' r' hl szr k'' v'' l'' r'' hr))))) fun ℓ hℓ₁ hℓ₂ ↦ Std.DTreeMap.Internal.Impl.Tree.mk (Std.DTreeMap.Internal.Impl.balanceLErase k'' v'' ℓ r'' (Std.DTreeMap.Internal.Impl.glue._proof_10 szl k' v' l' r' hl szr k'' v'' l'' r'' hr ℓ hℓ₁) (Std.DTreeMap.Internal.Impl.glue._proof_6 szl k' v' l' r' hl szr k'' v'' l'' r'' hr) (Std.DTreeMap.Internal.Impl.link._proof_21 szl k' v' l' r' hl szr k'' v'' l'' r'' hr h₁ ℓ hℓ₂)) (Std.DTreeMap.Internal.Impl.link._proof_23 szl k' v' l' r' hl szr k'' v'' l'' r'' hr h₁ ℓ hℓ₁ hℓ₂) (Std.DTreeMap.Internal.Impl.link._proof_26 szl k' v' l' r' hl szr k'' v'' l'' r'' hr h₁ ℓ hℓ₁ hℓ₂)) fun h₁ ↦ dite (LT.lt (HMul.hMul Std.DTreeMap.Internal.delta szr) szl) (fun h₂ ↦ Std.DTreeMap.Internal.Impl.link.match_3 r' szr k'' v'' l'' r'' (fun x ↦ Std.DTreeMap.Internal.Impl.Tree.{u, v} α β (HAdd.hAdd (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner szl k' v' l' r')) (OfNat.ofNat 1)) (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner szr k'' v'' l'' r'')))) (Std.DTreeMap.Internal.Impl.link._unary k v (PSigma.mk r' (PSigma.mk (Std.DTreeMap.Internal.Impl.inner szr k'' v'' l'' r'') (PSigma.mk (Std.DTreeMap.Internal.Impl.glue._proof_16 szl k' v' l' r' hl szr k'' v'' l'' r'' hr) (Std.DTreeMap.Internal.Impl.link._proof_28 szl k' v' l' r' hl szr k'' v'' l'' r'' hr))))) fun ℓ hℓ₁ hℓ₂ ↦ Std.DTreeMap.Internal.Impl.Tree.mk (Std.DTreeMap.Internal.Impl.balanceRErase k' v' l' ℓ (Std.DTreeMap.Internal.Impl.glue._proof_14 szl k' v' l' r' hl szr k'' v'' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_10 szl k' v' l' r' hl szr k'' v'' l'' r'' hr ℓ hℓ₁) (Std.DTreeMap.Internal.Impl.link._proof_31 szl k' v' l' r' hl szr k'' v'' l'' r'' hr h₁ h₂ ℓ hℓ₂)) (Std.DTreeMap.Internal.Impl.link._proof_33 szl k' v' l' r' hl szr k'' v'' l'' r'' hr h₁ h₂ ℓ hℓ₁ hℓ₂) (Std.DTreeMap.Internal.Impl.link._proof_36 szl k' v' l' r' hl szr k'' v'' l'' r'' hr h₁ h₂ ℓ hℓ₁ hℓ₂)) fun h₂ ↦ Std.DTreeMap.Internal.Impl.Tree.mk (Std.DTreeMap.Internal.Impl.inner (HAdd.hAdd (HAdd.hAdd szl (OfNat.ofNat 1)) szr) k v (Std.DTreeMap.Internal.Impl.inner szl k' v' l' r') (Std.DTreeMap.Internal.Impl.inner szr k'' v'' l'' r'')) (Std.DTreeMap.Internal.Impl.link._proof_39 k v szl k' v' l' r' hl szr k'' v'' l'' r'' hr h₁ h₂) (Std.DTreeMap.Internal.Impl.link._proof_41 k v szl k' v' l' r' szr k'' v'' l'' r'')) := fun {α β} k v _x ↦ id (Eq.trans (WellFounded.Nat.fix_eq (fun x ↦ PSigma.casesOn x fun l r ↦ PSigma.casesOn r fun r hl ↦ PSigma.casesOn hl fun hl hr ↦ HAdd.hAdd (SizeOf.sizeOf l) (SizeOf.sizeOf r)) (fun _x a ↦ PSigma.casesOn _x (fun l r a ↦ PSigma.casesOn r (fun r hl a ↦ PSigma.casesOn hl (fun hl hr a ↦ Std.DTreeMap.Internal.Impl.insertMin.match_3 (fun l hl ↦ ((y : PSigma fun l ↦ PSigma fun r ↦ PSigma fun hl ↦ Std.DTreeMap.Internal.Impl.Balanced r) → InvImage (fun x1 x2 ↦ LT.lt x1 x2) (fun x ↦ PSigma.casesOn x fun l r ↦ PSigma.casesOn r fun r hl ↦ PSigma.casesOn hl fun hl hr ↦ HAdd.hAdd (SizeOf.sizeOf l) (SizeOf.sizeOf r)) y (PSigma.mk l (PSigma.mk r (PSigma.mk hl hr))) → Std.DTreeMap.Internal.Impl.Tree.{u, v} α β (HAdd.hAdd (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size y.fst) (OfNat.ofNat 1)) (Std.DTreeMap.Internal.Impl.size y.snd.fst))) → Std.DTreeMap.Internal.Impl.Tree.{u, v} α β (HAdd.hAdd (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size l) (OfNat.ofNat 1)) (Std.DTreeMap.Internal.Impl.size r))) l hl (fun hl x ↦ let d : Std.DTreeMap.Internal.Impl.Tree.{u, v} α β (HAdd.hAdd (OfNat.ofNat 1) (Std.DTreeMap.Internal.Impl.size r)) := Std.DTreeMap.Internal.Impl.insertMin k v r (Std.DTreeMap.Internal.Impl.link._proof_6 r hr)
Std.DTreeMap.Internal.Impl.Tree.mk (Std.DTreeMap.Internal.Impl.Tree.impl d) (Std.DTreeMap.Internal.Impl.link._proof_8 k v r hr) (Std.DTreeMap.Internal.Impl.link._proof_10 k v r hr)) (fun szl k' v' l' r' hl x ↦ Std.DTreeMap.Internal.Impl.insertMin.match_3 (fun r hr ↦ ((y : PSigma fun l ↦ PSigma fun r ↦ PSigma fun hl ↦ Std.DTreeMap.Internal.Impl.Balanced r) → InvImage (fun x1 x2 ↦ LT.lt x1 x2) (fun x ↦ PSigma.casesOn x fun l r ↦ PSigma.casesOn r fun r hl ↦ PSigma.casesOn hl fun hl hr ↦ HAdd.hAdd (SizeOf.sizeOf l) (SizeOf.sizeOf r)) y (PSigma.mk (Std.DTreeMap.Internal.Impl.inner szl k' v' l' r') (PSigma.mk r (PSigma.mk hl hr))) → Std.DTreeMap.Internal.Impl.Tree.{u, v} α β (HAdd.hAdd (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size y.fst) (OfNat.ofNat 1)) (Std.DTreeMap.Internal.Impl.size y.snd.fst))) → Std.DTreeMap.Internal.Impl.Tree.{u, v} α β (HAdd.hAdd (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner szl k' v' l' r')) (OfNat.ofNat 1)) (Std.DTreeMap.Internal.Impl.size r))) r hr (fun hr x ↦ let d : Std.DTreeMap.Internal.Impl.Tree.{u, v} α β (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner szl k' v' l' r')) (OfNat.ofNat 1)) := Std.DTreeMap.Internal.Impl.insertMax k v (Std.DTreeMap.Internal.Impl.inner szl k' v' l' r') (Std.DTreeMap.Internal.Impl.link._proof_12 szl k' v' l' r' hl)
Std.DTreeMap.Internal.Impl.Tree.mk (Std.DTreeMap.Internal.Impl.Tree.impl d) (Std.DTreeMap.Internal.Impl.link._proof_14 k v szl k' v' l' r' hl) (Std.DTreeMap.Internal.Impl.link._proof_16 k v szl k' v' l' r' hl)) (fun szr k'' v'' l'' r'' hr x ↦ dite (LT.lt (HMul.hMul Std.DTreeMap.Internal.delta szl) szr) (fun h₁ ↦ Std.DTreeMap.Internal.Impl.link.match_1 szl k' v' l' r' l'' (fun x ↦ Std.DTreeMap.Internal.Impl.Tree.{u, v} α β (HAdd.hAdd (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner szl k' v' l' r')) (OfNat.ofNat 1)) (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner szr k'' v'' l'' r'')))) (x (PSigma.mk (Std.DTreeMap.Internal.Impl.inner szl k' v' l' r') (PSigma.mk l'' (PSigma.mk (Std.DTreeMap.Internal.Impl.link._proof_18 szl k' v' l' r' hl szr k'' v'' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_4 szl k' v' l' r' hl szr k'' v'' l'' r'' hr)))) (Std.DTreeMap.Internal.Impl.link._unary._proof_1 szl k' v' l' r' hl szr k'' v'' l'' r'' hr h₁)) fun ℓ hℓ₁ hℓ₂ ↦ Std.DTreeMap.Internal.Impl.Tree.mk (Std.DTreeMap.Internal.Impl.balanceLErase k'' v'' ℓ r'' (Std.DTreeMap.Internal.Impl.glue._proof_10 szl k' v' l' r' hl szr k'' v'' l'' r'' hr ℓ hℓ₁) (Std.DTreeMap.Internal.Impl.glue._proof_6 szl k' v' l' r' hl szr k'' v'' l'' r'' hr) (Std.DTreeMap.Internal.Impl.link._proof_21 szl k' v' l' r' hl szr k'' v'' l'' r'' hr h₁ ℓ hℓ₂)) (Std.DTreeMap.Internal.Impl.link._proof_23 szl k' v' l' r' hl szr k'' v'' l'' r'' hr h₁ ℓ hℓ₁ hℓ₂) (Std.DTreeMap.Internal.Impl.link._proof_26 szl k' v' l' r' hl szr k'' v'' l'' r'' hr h₁ ℓ hℓ₁ hℓ₂)) fun h₁ ↦ dite (LT.lt (HMul.hMul Std.DTreeMap.Internal.delta szr) szl) (fun h₂ ↦ Std.DTreeMap.Internal.Impl.link.match_3 r' szr k'' v'' l'' r'' (fun x ↦ Std.DTreeMap.Internal.Impl.Tree.{u, v} α β (HAdd.hAdd (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner szl k' v' l' r')) (OfNat.ofNat 1)) (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner szr k'' v'' l'' r'')))) (x (PSigma.mk r' (PSigma.mk (Std.DTreeMap.Internal.Impl.inner szr k'' v'' l'' r'') (PSigma.mk (Std.DTreeMap.Internal.Impl.glue._proof_16 szl k' v' l' r' hl szr k'' v'' l'' r'' hr) (Std.DTreeMap.Internal.Impl.link._proof_28 szl k' v' l' r' hl szr k'' v'' l'' r'' hr)))) (Std.DTreeMap.Internal.Impl.link._unary._proof_2 szl k' v' l' r' hl szr k'' v'' l'' r'' hr h₂)) fun ℓ hℓ₁ hℓ₂ ↦ Std.DTreeMap.Internal.Impl.Tree.mk (Std.DTreeMap.Internal.Impl.balanceRErase k' v' l' ℓ (Std.DTreeMap.Internal.Impl.glue._proof_14 szl k' v' l' r' hl szr k'' v'' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_10 szl k' v' l' r' hl szr k'' v'' l'' r'' hr ℓ hℓ₁) (Std.DTreeMap.Internal.Impl.link._proof_31 szl k' v' l' r' hl szr k'' v'' l'' r'' hr h₁ h₂ ℓ hℓ₂)) (Std.DTreeMap.Internal.Impl.link._proof_33 szl k' v' l' r' hl szr k'' v'' l'' r'' hr h₁ h₂ ℓ hℓ₁ hℓ₂) (Std.DTreeMap.Internal.Impl.link._proof_36 szl k' v' l' r' hl szr k'' v'' l'' r'' hr h₁ h₂ ℓ hℓ₁ hℓ₂)) fun h₂ ↦ Std.DTreeMap.Internal.Impl.Tree.mk (Std.DTreeMap.Internal.Impl.inner (HAdd.hAdd (HAdd.hAdd szl (OfNat.ofNat 1)) szr) k v (Std.DTreeMap.Internal.Impl.inner szl k' v' l' r') (Std.DTreeMap.Internal.Impl.inner szr k'' v'' l'' r'')) (Std.DTreeMap.Internal.Impl.link._unary._proof_3 k v szl k' v' l' r' hl szr k'' v'' l'' r'' hr h₁ h₂) (Std.DTreeMap.Internal.Impl.link._unary._proof_4 k v szl k' v' l' r' szr k'' v'' l'' r'')) x) a) a) a) a) _x) (Eq.mpr (id (congrFun' (congrArg (Eq) (Eq.trans (_private.Std.Data.DTreeMap.Internal.Operations.0.PSigma.casesOn._arg_pusher (PSigma fun l ↦ PSigma fun r ↦ PSigma fun hl ↦ Std.DTreeMap.Internal.Impl.Balanced r) (fun _x ↦ Std.DTreeMap.Internal.Impl.Tree.{u, v} α β (HAdd.hAdd (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size _x.fst) (OfNat.ofNat 1)) (Std.DTreeMap.Internal.Impl.size _x.snd.fst))) (Std.DTreeMap.Internal.Impl.link._unary k v) (fun _x y ↦ InvImage (fun x1 x2 ↦ LT.lt x1 x2) (fun x ↦ PSigma.casesOn x fun l r ↦ PSigma.casesOn r fun r hl ↦ PSigma.casesOn hl fun hl hr ↦ HAdd.hAdd (SizeOf.sizeOf l) (SizeOf.sizeOf r)) y _x) _x fun l r a ↦ PSigma.casesOn r (fun r hl a ↦ PSigma.casesOn hl (fun hl hr a ↦ Std.DTreeMap.Internal.Impl.insertMin.match_3 (fun l hl ↦ ((y : PSigma fun l ↦ PSigma fun r ↦ PSigma fun hl ↦ Std.DTreeMap.Internal.Impl.Balanced r) → InvImage (fun x1 x2 ↦ LT.lt x1 x2) (fun x ↦ PSigma.casesOn x fun l r ↦ PSigma.casesOn r fun r hl ↦ PSigma.casesOn hl fun hl hr ↦ HAdd.hAdd (SizeOf.sizeOf l) (SizeOf.sizeOf r)) y (PSigma.mk l (PSigma.mk r (PSigma.mk hl hr))) → Std.DTreeMap.Internal.Impl.Tree.{u, v} α β (HAdd.hAdd (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size y.fst) (OfNat.ofNat 1)) (Std.DTreeMap.Internal.Impl.size y.snd.fst))) → Std.DTreeMap.Internal.Impl.Tree.{u, v} α β (HAdd.hAdd (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size l) (OfNat.ofNat 1)) (Std.DTreeMap.Internal.Impl.size r))) l hl (fun hl x ↦ let d : Std.DTreeMap.Internal.Impl.Tree.{u, v} α β (HAdd.hAdd (OfNat.ofNat 1) (Std.DTreeMap.Internal.Impl.size r)) := Std.DTreeMap.Internal.Impl.insertMin k v r (Std.DTreeMap.Internal.Impl.link._proof_6 r hr)
Std.DTreeMap.Internal.Impl.Tree.mk (Std.DTreeMap.Internal.Impl.Tree.impl d) (Std.DTreeMap.Internal.Impl.link._proof_8 k v r hr) (Std.DTreeMap.Internal.Impl.link._proof_10 k v r hr)) (fun szl k' v' l' r' hl x ↦ Std.DTreeMap.Internal.Impl.insertMin.match_3 (fun r hr ↦ ((y : PSigma fun l ↦ PSigma fun r ↦ PSigma fun hl ↦ Std.DTreeMap.Internal.Impl.Balanced r) → InvImage (fun x1 x2 ↦ LT.lt x1 x2) (fun x ↦ PSigma.casesOn x fun l r ↦ PSigma.casesOn r fun r hl ↦ PSigma.casesOn hl fun hl hr ↦ HAdd.hAdd (SizeOf.sizeOf l) (SizeOf.sizeOf r)) y (PSigma.mk (Std.DTreeMap.Internal.Impl.inner szl k' v' l' r') (PSigma.mk r (PSigma.mk hl hr))) → Std.DTreeMap.Internal.Impl.Tree.{u, v} α β (HAdd.hAdd (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size y.fst) (OfNat.ofNat 1)) (Std.DTreeMap.Internal.Impl.size y.snd.fst))) → Std.DTreeMap.Internal.Impl.Tree.{u, v} α β (HAdd.hAdd (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner szl k' v' l' r')) (OfNat.ofNat 1)) (Std.DTreeMap.Internal.Impl.size r))) r hr (fun hr x ↦ let d : Std.DTreeMap.Internal.Impl.Tree.{u, v} α β (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner szl k' v' l' r')) (OfNat.ofNat 1)) := Std.DTreeMap.Internal.Impl.insertMax k v (Std.DTreeMap.Internal.Impl.inner szl k' v' l' r') (Std.DTreeMap.Internal.Impl.link._proof_12 szl k' v' l' r' hl)
Std.DTreeMap.Internal.Impl.Tree.mk (Std.DTreeMap.Internal.Impl.Tree.impl d) (Std.DTreeMap.Internal.Impl.link._proof_14 k v szl k' v' l' r' hl) (Std.DTreeMap.Internal.Impl.link._proof_16 k v szl k' v' l' r' hl)) (fun szr k'' v'' l'' r'' hr x ↦ dite (LT.lt (HMul.hMul Std.DTreeMap.Internal.delta szl) szr) (fun h₁ ↦ Std.DTreeMap.Internal.Impl.link.match_1 szl k' v' l' r' l'' (fun x ↦ Std.DTreeMap.Internal.Impl.Tree.{u, v} α β (HAdd.hAdd (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner szl k' v' l' r')) (OfNat.ofNat 1)) (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner szr k'' v'' l'' r'')))) (x (PSigma.mk (Std.DTreeMap.Internal.Impl.inner szl k' v' l' r') (PSigma.mk l'' (PSigma.mk (Std.DTreeMap.Internal.Impl.link._proof_18 szl k' v' l' r' hl szr k'' v'' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_4 szl k' v' l' r' hl szr k'' v'' l'' r'' hr)))) (Std.DTreeMap.Internal.Impl.link._unary._proof_1 szl k' v' l' r' hl szr k'' v'' l'' r'' hr h₁)) fun ℓ hℓ₁ hℓ₂ ↦ Std.DTreeMap.Internal.Impl.Tree.mk (Std.DTreeMap.Internal.Impl.balanceLErase k'' v'' ℓ r'' (Std.DTreeMap.Internal.Impl.glue._proof_10 szl k' v' l' r' hl szr k'' v'' l'' r'' hr ℓ hℓ₁) (Std.DTreeMap.Internal.Impl.glue._proof_6 szl k' v' l' r' hl szr k'' v'' l'' r'' hr) (Std.DTreeMap.Internal.Impl.link._proof_21 szl k' v' l' r' hl szr k'' v'' l'' r'' hr h₁ ℓ hℓ₂)) (Std.DTreeMap.Internal.Impl.link._proof_23 szl k' v' l' r' hl szr k'' v'' l'' r'' hr h₁ ℓ hℓ₁ hℓ₂) (Std.DTreeMap.Internal.Impl.link._proof_26 szl k' v' l' r' hl szr k'' v'' l'' r'' hr h₁ ℓ hℓ₁ hℓ₂)) fun h₁ ↦ dite (LT.lt (HMul.hMul Std.DTreeMap.Internal.delta szr) szl) (fun h₂ ↦ Std.DTreeMap.Internal.Impl.link.match_3 r' szr k'' v'' l'' r'' (fun x ↦ Std.DTreeMap.Internal.Impl.Tree.{u, v} α β (HAdd.hAdd (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner szl k' v' l' r')) (OfNat.ofNat 1)) (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner szr k'' v'' l'' r'')))) (x (PSigma.mk r' (PSigma.mk (Std.DTreeMap.Internal.Impl.inner szr k'' v'' l'' r'') (PSigma.mk (Std.DTreeMap.Internal.Impl.glue._proof_16 szl k' v' l' r' hl szr k'' v'' l'' r'' hr) (Std.DTreeMap.Internal.Impl.link._proof_28 szl k' v' l' r' hl szr k'' v'' l'' r'' hr)))) (Std.DTreeMap.Internal.Impl.link._unary._proof_2 szl k' v' l' r' hl szr k'' v'' l'' r'' hr h₂)) fun ℓ hℓ₁ hℓ₂ ↦ Std.DTreeMap.Internal.Impl.Tree.mk (Std.DTreeMap.Internal.Impl.balanceRErase k' v' l' ℓ (Std.DTreeMap.Internal.Impl.glue._proof_14 szl k' v' l' r' hl szr k'' v'' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_10 szl k' v' l' r' hl szr k'' v'' l'' r'' hr ℓ hℓ₁) (Std.DTreeMap.Internal.Impl.link._proof_31 szl k' v' l' r' hl szr k'' v'' l'' r'' hr h₁ h₂ ℓ hℓ₂)) (Std.DTreeMap.Internal.Impl.link._proof_33 szl k' v' l' r' hl szr k'' v'' l'' r'' hr h₁ h₂ ℓ hℓ₁ hℓ₂) (Std.DTreeMap.Internal.Impl.link._proof_36 szl k' v' l' r' hl szr k'' v'' l'' r'' hr h₁ h₂ ℓ hℓ₁ hℓ₂)) fun h₂ ↦ Std.DTreeMap.Internal.Impl.Tree.mk (Std.DTreeMap.Internal.Impl.inner (HAdd.hAdd (HAdd.hAdd szl (OfNat.ofNat 1)) szr) k v (Std.DTreeMap.Internal.Impl.inner szl k' v' l' r') (Std.DTreeMap.Internal.Impl.inner szr k'' v'' l'' r'')) (Std.DTreeMap.Internal.Impl.link._unary._proof_3 k v szl k' v' l' r' hl szr k'' v'' l'' r'' hr h₁ h₂) (Std.DTreeMap.Internal.Impl.link._unary._proof_4 k v szl k' v' l' r' szr k'' v'' l'' r'')) x) a) a) a) (congrFun (congrArg (PSigma.rec) (funext fun fst ↦ funext fun snd ↦ Eq.trans (_private.Std.Data.DTreeMap.Internal.Operations.0.PSigma.casesOn._arg_pusher (PSigma fun l ↦ PSigma fun r ↦ PSigma fun hl ↦ Std.DTreeMap.Internal.Impl.Balanced r) (fun _x ↦ Std.DTreeMap.Internal.Impl.Tree.{u, v} α β (HAdd.hAdd (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size _x.fst) (OfNat.ofNat 1)) (Std.DTreeMap.Internal.Impl.size _x.snd.fst))) (Std.DTreeMap.Internal.Impl.link._unary k v) (fun r y ↦ InvImage (fun x1 x2 ↦ LT.lt x1 x2) (fun x ↦ PSigma.casesOn x fun l r ↦ PSigma.casesOn r fun r hl ↦ PSigma.casesOn hl fun hl hr ↦ HAdd.hAdd (SizeOf.sizeOf l) (SizeOf.sizeOf r)) y (PSigma.mk fst r)) snd fun r hl a ↦ PSigma.casesOn hl (fun hl hr a ↦ Std.DTreeMap.Internal.Impl.insertMin.match_3 (fun l hl ↦ ((y : PSigma fun l ↦ PSigma fun r ↦ PSigma fun hl ↦ Std.DTreeMap.Internal.Impl.Balanced r) → InvImage (fun x1 x2 ↦ LT.lt x1 x2) (fun x ↦ PSigma.casesOn x fun l r ↦ PSigma.casesOn r fun r hl ↦ PSigma.casesOn hl fun hl hr ↦ HAdd.hAdd (SizeOf.sizeOf l) (SizeOf.sizeOf r)) y (PSigma.mk l (PSigma.mk r (PSigma.mk hl hr))) → Std.DTreeMap.Internal.Impl.Tree.{u, v} α β (HAdd.hAdd (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size y.fst) (OfNat.ofNat 1)) (Std.DTreeMap.Internal.Impl.size y.snd.fst))) → Std.DTreeMap.Internal.Impl.Tree.{u, v} α β (HAdd.hAdd (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size l) (OfNat.ofNat 1)) (Std.DTreeMap.Internal.Impl.size r))) fst hl (fun hl x ↦ let d : Std.DTreeMap.Internal.Impl.Tree.{u, v} α β (HAdd.hAdd (OfNat.ofNat 1) (Std.DTreeMap.Internal.Impl.size r)) := Std.DTreeMap.Internal.Impl.insertMin k v r (Std.DTreeMap.Internal.Impl.link._proof_6 r hr)
Std.DTreeMap.Internal.Impl.Tree.mk (Std.DTreeMap.Internal.Impl.Tree.impl d) (Std.DTreeMap.Internal.Impl.link._proof_8 k v r hr) (Std.DTreeMap.Internal.Impl.link._proof_10 k v r hr)) (fun szl k' v' l' r' hl x ↦ Std.DTreeMap.Internal.Impl.insertMin.match_3 (fun r hr ↦ ((y : PSigma fun l ↦ PSigma fun r ↦ PSigma fun hl ↦ Std.DTreeMap.Internal.Impl.Balanced r) → InvImage (fun x1 x2 ↦ LT.lt x1 x2) (fun x ↦ PSigma.casesOn x fun l r ↦ PSigma.casesOn r fun r hl ↦ PSigma.casesOn hl fun hl hr ↦ HAdd.hAdd (SizeOf.sizeOf l) (SizeOf.sizeOf r)) y (PSigma.mk (Std.DTreeMap.Internal.Impl.inner szl k' v' l' r') (PSigma.mk r (PSigma.mk hl hr))) → Std.DTreeMap.Internal.Impl.Tree.{u, v} α β (HAdd.hAdd (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size y.fst) (OfNat.ofNat 1)) (Std.DTreeMap.Internal.Impl.size y.snd.fst))) → Std.DTreeMap.Internal.Impl.Tree.{u, v} α β (HAdd.hAdd (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner szl k' v' l' r')) (OfNat.ofNat 1)) (Std.DTreeMap.Internal.Impl.size r))) r hr (fun hr x ↦ let d : Std.DTreeMap.Internal.Impl.Tree.{u, v} α β (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner szl k' v' l' r')) (OfNat.ofNat 1)) := Std.DTreeMap.Internal.Impl.insertMax k v (Std.DTreeMap.Internal.Impl.inner szl k' v' l' r') (Std.DTreeMap.Internal.Impl.link._proof_12 szl k' v' l' r' hl)
Std.DTreeMap.Internal.Impl.Tree.mk (Std.DTreeMap.Internal.Impl.Tree.impl d) (Std.DTreeMap.Internal.Impl.link._proof_14 k v szl k' v' l' r' hl) (Std.DTreeMap.Internal.Impl.link._proof_16 k v szl k' v' l' r' hl)) (fun szr k'' v'' l'' r'' hr x ↦ dite (LT.lt (HMul.hMul Std.DTreeMap.Internal.delta szl) szr) (fun h₁ ↦ Std.DTreeMap.Internal.Impl.link.match_1 szl k' v' l' r' l'' (fun x ↦ Std.DTreeMap.Internal.Impl.Tree.{u, v} α β (HAdd.hAdd (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner szl k' v' l' r')) (OfNat.ofNat 1)) (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner szr k'' v'' l'' r'')))) (x (PSigma.mk (Std.DTreeMap.Internal.Impl.inner szl k' v' l' r') (PSigma.mk l'' (PSigma.mk (Std.DTreeMap.Internal.Impl.link._proof_18 szl k' v' l' r' hl szr k'' v'' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_4 szl k' v' l' r' hl szr k'' v'' l'' r'' hr)))) (Std.DTreeMap.Internal.Impl.link._unary._proof_1 szl k' v' l' r' hl szr k'' v'' l'' r'' hr h₁)) fun ℓ hℓ₁ hℓ₂ ↦ Std.DTreeMap.Internal.Impl.Tree.mk (Std.DTreeMap.Internal.Impl.balanceLErase k'' v'' ℓ r'' (Std.DTreeMap.Internal.Impl.glue._proof_10 szl k' v' l' r' hl szr k'' v'' l'' r'' hr ℓ hℓ₁) (Std.DTreeMap.Internal.Impl.glue._proof_6 szl k' v' l' r' hl szr k'' v'' l'' r'' hr) (Std.DTreeMap.Internal.Impl.link._proof_21 szl k' v' l' r' hl szr k'' v'' l'' r'' hr h₁ ℓ hℓ₂)) (Std.DTreeMap.Internal.Impl.link._proof_23 szl k' v' l' r' hl szr k'' v'' l'' r'' hr h₁ ℓ hℓ₁ hℓ₂) (Std.DTreeMap.Internal.Impl.link._proof_26 szl k' v' l' r' hl szr k'' v'' l'' r'' hr h₁ ℓ hℓ₁ hℓ₂)) fun h₁ ↦ dite (LT.lt (HMul.hMul Std.DTreeMap.Internal.delta szr) szl) (fun h₂ ↦ Std.DTreeMap.Internal.Impl.link.match_3 r' szr k'' v'' l'' r'' (fun x ↦ Std.DTreeMap.Internal.Impl.Tree.{u, v} α β (HAdd.hAdd (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner szl k' v' l' r')) (OfNat.ofNat 1)) (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner szr k'' v'' l'' r'')))) (x (PSigma.mk r' (PSigma.mk (Std.DTreeMap.Internal.Impl.inner szr k'' v'' l'' r'') (PSigma.mk (Std.DTreeMap.Internal.Impl.glue._proof_16 szl k' v' l' r' hl szr k'' v'' l'' r'' hr) (Std.DTreeMap.Internal.Impl.link._proof_28 szl k' v' l' r' hl szr k'' v'' l'' r'' hr)))) (Std.DTreeMap.Internal.Impl.link._unary._proof_2 szl k' v' l' r' hl szr k'' v'' l'' r'' hr h₂)) fun ℓ hℓ₁ hℓ₂ ↦ Std.DTreeMap.Internal.Impl.Tree.mk (Std.DTreeMap.Internal.Impl.balanceRErase k' v' l' ℓ (Std.DTreeMap.Internal.Impl.glue._proof_14 szl k' v' l' r' hl szr k'' v'' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_10 szl k' v' l' r' hl szr k'' v'' l'' r'' hr ℓ hℓ₁) (Std.DTreeMap.Internal.Impl.link._proof_31 szl k' v' l' r' hl szr k'' v'' l'' r'' hr h₁ h₂ ℓ hℓ₂)) (Std.DTreeMap.Internal.Impl.link._proof_33 szl k' v' l' r' hl szr k'' v'' l'' r'' hr h₁ h₂ ℓ hℓ₁ hℓ₂) (Std.DTreeMap.Internal.Impl.link._proof_36 szl k' v' l' r' hl szr k'' v'' l'' r'' hr h₁ h₂ ℓ hℓ₁ hℓ₂)) fun h₂ ↦ Std.DTreeMap.Internal.Impl.Tree.mk (Std.DTreeMap.Internal.Impl.inner (HAdd.hAdd (HAdd.hAdd szl (OfNat.ofNat 1)) szr) k v (Std.DTreeMap.Internal.Impl.inner szl k' v' l' r') (Std.DTreeMap.Internal.Impl.inner szr k'' v'' l'' r'')) (Std.DTreeMap.Internal.Impl.link._unary._proof_3 k v szl k' v' l' r' hl szr k'' v'' l'' r'' hr h₁ h₂) (Std.DTreeMap.Internal.Impl.link._unary._proof_4 k v szl k' v' l' r' szr k'' v'' l'' r'')) x) a) a) (congrFun (congrArg (PSigma.rec) (funext fun fst ↦ funext fun snd ↦ Eq.trans (_private.Std.Data.DTreeMap.Internal.Operations.0.PSigma.casesOn._arg_pusher (PSigma fun l ↦ PSigma fun r ↦ PSigma fun hl ↦ Std.DTreeMap.Internal.Impl.Balanced r) (fun _x ↦ Std.DTreeMap.Internal.Impl.Tree.{u, v} α β (HAdd.hAdd (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size _x.fst) (OfNat.ofNat 1)) (Std.DTreeMap.Internal.Impl.size _x.snd.fst))) (Std.DTreeMap.Internal.Impl.link._unary k v) (fun hl y ↦ InvImage (fun x1 x2 ↦ LT.lt x1 x2) (fun x ↦ PSigma.casesOn x fun l r ↦ PSigma.casesOn r fun r hl ↦ PSigma.casesOn hl fun hl hr ↦ HAdd.hAdd (SizeOf.sizeOf l) (SizeOf.sizeOf r)) y (PSigma.mk fst (PSigma.mk fst hl))) snd fun hl hr a ↦ Std.DTreeMap.Internal.Impl.insertMin.match_3 (fun l hl ↦ ((y : PSigma fun l ↦ PSigma fun r ↦ PSigma fun hl ↦ Std.DTreeMap.Internal.Impl.Balanced r) → InvImage (fun x1 x2 ↦ LT.lt x1 x2) (fun x ↦ PSigma.casesOn x fun l r ↦ PSigma.casesOn r fun r hl ↦ PSigma.casesOn hl fun hl hr ↦ HAdd.hAdd (SizeOf.sizeOf l) (SizeOf.sizeOf r)) y (PSigma.mk l (PSigma.mk fst (PSigma.mk hl hr))) → Std.DTreeMap.Internal.Impl.Tree.{u, v} α β (HAdd.hAdd (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size y.fst) (OfNat.ofNat 1)) (Std.DTreeMap.Internal.Impl.size y.snd.fst))) → Std.DTreeMap.Internal.Impl.Tree.{u, v} α β (HAdd.hAdd (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size l) (OfNat.ofNat 1)) (Std.DTreeMap.Internal.Impl.size fst))) fst hl (fun hl x ↦ let d : Std.DTreeMap.Internal.Impl.Tree.{u, v} α β (HAdd.hAdd (OfNat.ofNat 1) (Std.DTreeMap.Internal.Impl.size fst)) := Std.DTreeMap.Internal.Impl.insertMin k v fst (Std.DTreeMap.Internal.Impl.link._proof_6 fst hr)
Std.DTreeMap.Internal.Impl.Tree.mk (Std.DTreeMap.Internal.Impl.Tree.impl d) (Std.DTreeMap.Internal.Impl.link._proof_8 k v fst hr) (Std.DTreeMap.Internal.Impl.link._proof_10 k v fst hr)) (fun szl k' v' l' r' hl x ↦ Std.DTreeMap.Internal.Impl.insertMin.match_3 (fun r hr ↦ ((y : PSigma fun l ↦ PSigma fun r ↦ PSigma fun hl ↦ Std.DTreeMap.Internal.Impl.Balanced r) → InvImage (fun x1 x2 ↦ LT.lt x1 x2) (fun x ↦ PSigma.casesOn x fun l r ↦ PSigma.casesOn r fun r hl ↦ PSigma.casesOn hl fun hl hr ↦ HAdd.hAdd (SizeOf.sizeOf l) (SizeOf.sizeOf r)) y (PSigma.mk (Std.DTreeMap.Internal.Impl.inner szl k' v' l' r') (PSigma.mk r (PSigma.mk hl hr))) → Std.DTreeMap.Internal.Impl.Tree.{u, v} α β (HAdd.hAdd (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size y.fst) (OfNat.ofNat 1)) (Std.DTreeMap.Internal.Impl.size y.snd.fst))) → Std.DTreeMap.Internal.Impl.Tree.{u, v} α β (HAdd.hAdd (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner szl k' v' l' r')) (OfNat.ofNat 1)) (Std.DTreeMap.Internal.Impl.size r))) fst hr (fun hr x ↦ let d : Std.DTreeMap.Internal.Impl.Tree.{u, v} α β (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner szl k' v' l' r')) (OfNat.ofNat 1)) := Std.DTreeMap.Internal.Impl.insertMax k v (Std.DTreeMap.Internal.Impl.inner szl k' v' l' r') (Std.DTreeMap.Internal.Impl.link._proof_12 szl k' v' l' r' hl)
Std.DTreeMap.Internal.Impl.Tree.mk (Std.DTreeMap.Internal.Impl.Tree.impl d) (Std.DTreeMap.Internal.Impl.link._proof_14 k v szl k' v' l' r' hl) (Std.DTreeMap.Internal.Impl.link._proof_16 k v szl k' v' l' r' hl)) (fun szr k'' v'' l'' r'' hr x ↦ dite (LT.lt (HMul.hMul Std.DTreeMap.Internal.delta szl) szr) (fun h₁ ↦ Std.DTreeMap.Internal.Impl.link.match_1 szl k' v' l' r' l'' (fun x ↦ Std.DTreeMap.Internal.Impl.Tree.{u, v} α β (HAdd.hAdd (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner szl k' v' l' r')) (OfNat.ofNat 1)) (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner szr k'' v'' l'' r'')))) (x (PSigma.mk (Std.DTreeMap.Internal.Impl.inner szl k' v' l' r') (PSigma.mk l'' (PSigma.mk (Std.DTreeMap.Internal.Impl.link._proof_18 szl k' v' l' r' hl szr k'' v'' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_4 szl k' v' l' r' hl szr k'' v'' l'' r'' hr)))) (Std.DTreeMap.Internal.Impl.link._unary._proof_1 szl k' v' l' r' hl szr k'' v'' l'' r'' hr h₁)) fun ℓ hℓ₁ hℓ₂ ↦ Std.DTreeMap.Internal.Impl.Tree.mk (Std.DTreeMap.Internal.Impl.balanceLErase k'' v'' ℓ r'' (Std.DTreeMap.Internal.Impl.glue._proof_10 szl k' v' l' r' hl szr k'' v'' l'' r'' hr ℓ hℓ₁) (Std.DTreeMap.Internal.Impl.glue._proof_6 szl k' v' l' r' hl szr k'' v'' l'' r'' hr) (Std.DTreeMap.Internal.Impl.link._proof_21 szl k' v' l' r' hl szr k'' v'' l'' r'' hr h₁ ℓ hℓ₂)) (Std.DTreeMap.Internal.Impl.link._proof_23 szl k' v' l' r' hl szr k'' v'' l'' r'' hr h₁ ℓ hℓ₁ hℓ₂) (Std.DTreeMap.Internal.Impl.link._proof_26 szl k' v' l' r' hl szr k'' v'' l'' r'' hr h₁ ℓ hℓ₁ hℓ₂)) fun h₁ ↦ dite (LT.lt (HMul.hMul Std.DTreeMap.Internal.delta szr) szl) (fun h₂ ↦ Std.DTreeMap.Internal.Impl.link.match_3 r' szr k'' v'' l'' r'' (fun x ↦ Std.DTreeMap.Internal.Impl.Tree.{u, v} α β (HAdd.hAdd (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner szl k' v' l' r')) (OfNat.ofNat 1)) (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner szr k'' v'' l'' r'')))) (x (PSigma.mk r' (PSigma.mk (Std.DTreeMap.Internal.Impl.inner szr k'' v'' l'' r'') (PSigma.mk (Std.DTreeMap.Internal.Impl.glue._proof_16 szl k' v' l' r' hl szr k'' v'' l'' r'' hr) (Std.DTreeMap.Internal.Impl.link._proof_28 szl k' v' l' r' hl szr k'' v'' l'' r'' hr)))) (Std.DTreeMap.Internal.Impl.link._unary._proof_2 szl k' v' l' r' hl szr k'' v'' l'' r'' hr h₂)) fun ℓ hℓ₁ hℓ₂ ↦ Std.DTreeMap.Internal.Impl.Tree.mk (Std.DTreeMap.Internal.Impl.balanceRErase k' v' l' ℓ (Std.DTreeMap.Internal.Impl.glue._proof_14 szl k' v' l' r' hl szr k'' v'' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_10 szl k' v' l' r' hl szr k'' v'' l'' r'' hr ℓ hℓ₁) (Std.DTreeMap.Internal.Impl.link._proof_31 szl k' v' l' r' hl szr k'' v'' l'' r'' hr h₁ h₂ ℓ hℓ₂)) (Std.DTreeMap.Internal.Impl.link._proof_33 szl k' v' l' r' hl szr k'' v'' l'' r'' hr h₁ h₂ ℓ hℓ₁ hℓ₂) (Std.DTreeMap.Internal.Impl.link._proof_36 szl k' v' l' r' hl szr k'' v'' l'' r'' hr h₁ h₂ ℓ hℓ₁ hℓ₂)) fun h₂ ↦ Std.DTreeMap.Internal.Impl.Tree.mk (Std.DTreeMap.Internal.Impl.inner (HAdd.hAdd (HAdd.hAdd szl (OfNat.ofNat 1)) szr) k v (Std.DTreeMap.Internal.Impl.inner szl k' v' l' r') (Std.DTreeMap.Internal.Impl.inner szr k'' v'' l'' r'')) (Std.DTreeMap.Internal.Impl.link._unary._proof_3 k v szl k' v' l' r' hl szr k'' v'' l'' r'' hr h₁ h₂) (Std.DTreeMap.Internal.Impl.link._unary._proof_4 k v szl k' v' l' r' szr k'' v'' l'' r'')) x) a) (congrFun (congrArg (PSigma.rec) (funext fun fst ↦ funext fun snd ↦ Eq.trans (_private.Std.Data.DTreeMap.Internal.Operations.0.Std.DTreeMap.Internal.Impl.insertMin.match_3._arg_pusher (fun l hl ↦ Std.DTreeMap.Internal.Impl.Tree.{u, v} α β (HAdd.hAdd (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size l) (OfNat.ofNat 1)) (Std.DTreeMap.Internal.Impl.size fst))) (PSigma fun l ↦ PSigma fun r ↦ PSigma fun hl ↦ Std.DTreeMap.Internal.Impl.Balanced r) (fun _x ↦ Std.DTreeMap.Internal.Impl.Tree.{u, v} α β (HAdd.hAdd (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size _x.fst) (OfNat.ofNat 1)) (Std.DTreeMap.Internal.Impl.size _x.snd.fst))) (Std.DTreeMap.Internal.Impl.link._unary k v) (fun l hl y ↦ InvImage (fun x1 x2 ↦ LT.lt x1 x2) (fun x ↦ PSigma.casesOn x fun l r ↦ PSigma.casesOn r fun r hl ↦ PSigma.casesOn hl fun hl hr ↦ HAdd.hAdd (SizeOf.sizeOf l) (SizeOf.sizeOf r)) y (PSigma.mk l (PSigma.mk fst (PSigma.mk hl snd)))) fst fst (fun hl x ↦ let d : Std.DTreeMap.Internal.Impl.Tree.{u, v} α β (HAdd.hAdd (OfNat.ofNat 1) (Std.DTreeMap.Internal.Impl.size fst)) := Std.DTreeMap.Internal.Impl.insertMin k v fst (Std.DTreeMap.Internal.Impl.link._proof_6 fst snd)
Std.DTreeMap.Internal.Impl.Tree.mk (Std.DTreeMap.Internal.Impl.Tree.impl d) (Std.DTreeMap.Internal.Impl.link._proof_8 k v fst snd) (Std.DTreeMap.Internal.Impl.link._proof_10 k v fst snd)) fun szl k' v' l' r' hl x ↦ Std.DTreeMap.Internal.Impl.insertMin.match_3 (fun r hr ↦ ((y : PSigma fun l ↦ PSigma fun r ↦ PSigma fun hl ↦ Std.DTreeMap.Internal.Impl.Balanced r) → InvImage (fun x1 x2 ↦ LT.lt x1 x2) (fun x ↦ PSigma.casesOn x fun l r ↦ PSigma.casesOn r fun r hl ↦ PSigma.casesOn hl fun hl hr ↦ HAdd.hAdd (SizeOf.sizeOf l) (SizeOf.sizeOf r)) y (PSigma.mk (Std.DTreeMap.Internal.Impl.inner szl k' v' l' r') (PSigma.mk r (PSigma.mk hl hr))) → Std.DTreeMap.Internal.Impl.Tree.{u, v} α β (HAdd.hAdd (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size y.fst) (OfNat.ofNat 1)) (Std.DTreeMap.Internal.Impl.size y.snd.fst))) → Std.DTreeMap.Internal.Impl.Tree.{u, v} α β (HAdd.hAdd (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner szl k' v' l' r')) (OfNat.ofNat 1)) (Std.DTreeMap.Internal.Impl.size r))) fst snd (fun hr x ↦ let d : Std.DTreeMap.Internal.Impl.Tree.{u, v} α β (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner szl k' v' l' r')) (OfNat.ofNat 1)) := Std.DTreeMap.Internal.Impl.insertMax k v (Std.DTreeMap.Internal.Impl.inner szl k' v' l' r') (Std.DTreeMap.Internal.Impl.link._proof_12 szl k' v' l' r' hl)
Std.DTreeMap.Internal.Impl.Tree.mk (Std.DTreeMap.Internal.Impl.Tree.impl d) (Std.DTreeMap.Internal.Impl.link._proof_14 k v szl k' v' l' r' hl) (Std.DTreeMap.Internal.Impl.link._proof_16 k v szl k' v' l' r' hl)) (fun szr k'' v'' l'' r'' hr x ↦ dite (LT.lt (HMul.hMul Std.DTreeMap.Internal.delta szl) szr) (fun h₁ ↦ Std.DTreeMap.Internal.Impl.link.match_1 szl k' v' l' r' l'' (fun x ↦ Std.DTreeMap.Internal.Impl.Tree.{u, v} α β (HAdd.hAdd (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner szl k' v' l' r')) (OfNat.ofNat 1)) (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner szr k'' v'' l'' r'')))) (x (PSigma.mk (Std.DTreeMap.Internal.Impl.inner szl k' v' l' r') (PSigma.mk l'' (PSigma.mk (Std.DTreeMap.Internal.Impl.link._proof_18 szl k' v' l' r' hl szr k'' v'' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_4 szl k' v' l' r' hl szr k'' v'' l'' r'' hr)))) (Std.DTreeMap.Internal.Impl.link._unary._proof_1 szl k' v' l' r' hl szr k'' v'' l'' r'' hr h₁)) fun ℓ hℓ₁ hℓ₂ ↦ Std.DTreeMap.Internal.Impl.Tree.mk (Std.DTreeMap.Internal.Impl.balanceLErase k'' v'' ℓ r'' (Std.DTreeMap.Internal.Impl.glue._proof_10 szl k' v' l' r' hl szr k'' v'' l'' r'' hr ℓ hℓ₁) (Std.DTreeMap.Internal.Impl.glue._proof_6 szl k' v' l' r' hl szr k'' v'' l'' r'' hr) (Std.DTreeMap.Internal.Impl.link._proof_21 szl k' v' l' r' hl szr k'' v'' l'' r'' hr h₁ ℓ hℓ₂)) (Std.DTreeMap.Internal.Impl.link._proof_23 szl k' v' l' r' hl szr k'' v'' l'' r'' hr h₁ ℓ hℓ₁ hℓ₂) (Std.DTreeMap.Internal.Impl.link._proof_26 szl k' v' l' r' hl szr k'' v'' l'' r'' hr h₁ ℓ hℓ₁ hℓ₂)) fun h₁ ↦ dite (LT.lt (HMul.hMul Std.DTreeMap.Internal.delta szr) szl) (fun h₂ ↦ Std.DTreeMap.Internal.Impl.link.match_3 r' szr k'' v'' l'' r'' (fun x ↦ Std.DTreeMap.Internal.Impl.Tree.{u, v} α β (HAdd.hAdd (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner szl k' v' l' r')) (OfNat.ofNat 1)) (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner szr k'' v'' l'' r'')))) (x (PSigma.mk r' (PSigma.mk (Std.DTreeMap.Internal.Impl.inner szr k'' v'' l'' r'') (PSigma.mk (Std.DTreeMap.Internal.Impl.glue._proof_16 szl k' v' l' r' hl szr k'' v'' l'' r'' hr) (Std.DTreeMap.Internal.Impl.link._proof_28 szl k' v' l' r' hl szr k'' v'' l'' r'' hr)))) (Std.DTreeMap.Internal.Impl.link._unary._proof_2 szl k' v' l' r' hl szr k'' v'' l'' r'' hr h₂)) fun ℓ hℓ₁ hℓ₂ ↦ Std.DTreeMap.Internal.Impl.Tree.mk (Std.DTreeMap.Internal.Impl.balanceRErase k' v' l' ℓ (Std.DTreeMap.Internal.Impl.glue._proof_14 szl k' v' l' r' hl szr k'' v'' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_10 szl k' v' l' r' hl szr k'' v'' l'' r'' hr ℓ hℓ₁) (Std.DTreeMap.Internal.Impl.link._proof_31 szl k' v' l' r' hl szr k'' v'' l'' r'' hr h₁ h₂ ℓ hℓ₂)) (Std.DTreeMap.Internal.Impl.link._proof_33 szl k' v' l' r' hl szr k'' v'' l'' r'' hr h₁ h₂ ℓ hℓ₁ hℓ₂) (Std.DTreeMap.Internal.Impl.link._proof_36 szl k' v' l' r' hl szr k'' v'' l'' r'' hr h₁ h₂ ℓ hℓ₁ hℓ₂)) fun h₂ ↦ Std.DTreeMap.Internal.Impl.Tree.mk (Std.DTreeMap.Internal.Impl.inner (HAdd.hAdd (HAdd.hAdd szl (OfNat.ofNat 1)) szr) k v (Std.DTreeMap.Internal.Impl.inner szl k' v' l' r') (Std.DTreeMap.Internal.Impl.inner szr k'' v'' l'' r'')) (Std.DTreeMap.Internal.Impl.link._unary._proof_3 k v szl k' v' l' r' hl szr k'' v'' l'' r'' hr h₁ h₂) (Std.DTreeMap.Internal.Impl.link._unary._proof_4 k v szl k' v' l' r' szr k'' v'' l'' r'')) x) (congrArg (Std.DTreeMap.Internal.Impl.insertMin.match_3 (fun l hl ↦ Std.DTreeMap.Internal.Impl.Tree.{u, v} α β (HAdd.hAdd (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size l) (OfNat.ofNat 1)) (Std.DTreeMap.Internal.Impl.size fst))) fst fst fun hr ↦ Std.DTreeMap.Internal.Impl.Tree.mk (Std.DTreeMap.Internal.Impl.Tree.impl (Std.DTreeMap.Internal.Impl.insertMin k v fst (Std.DTreeMap.Internal.Impl.link._proof_6 fst snd))) (Std.DTreeMap.Internal.Impl.link._proof_8 k v fst snd) (Std.DTreeMap.Internal.Impl.link._proof_10 k v fst snd)) (funext fun sz ↦ funext fun k' ↦ funext fun v' ↦ funext fun l' ↦ funext fun r' ↦ funext fun hr ↦ _private.Std.Data.DTreeMap.Internal.Operations.0.Std.DTreeMap.Internal.Impl.insertMin.match_3._arg_pusher (fun r hr ↦ Std.DTreeMap.Internal.Impl.Tree.{u, v} α β (HAdd.hAdd (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner sz k' v' l' r')) (OfNat.ofNat 1)) (Std.DTreeMap.Internal.Impl.size r))) (PSigma fun l ↦ PSigma fun r ↦ PSigma fun hl ↦ Std.DTreeMap.Internal.Impl.Balanced r) (fun _x ↦ Std.DTreeMap.Internal.Impl.Tree.{u, v} α β (HAdd.hAdd (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size _x.fst) (OfNat.ofNat 1)) (Std.DTreeMap.Internal.Impl.size _x.snd.fst))) (Std.DTreeMap.Internal.Impl.link._unary k v) (fun r hr y ↦ InvImage (fun x1 x2 ↦ LT.lt x1 x2) (fun x ↦ PSigma.casesOn x fun l r ↦ PSigma.casesOn r fun r hl ↦ PSigma.casesOn hl fun hl hr ↦ HAdd.hAdd (SizeOf.sizeOf l) (SizeOf.sizeOf r)) y (PSigma.mk (Std.DTreeMap.Internal.Impl.inner sz k' v' l' r') (PSigma.mk r (PSigma.mk hr hr)))) fst snd (fun hr x ↦ let d : Std.DTreeMap.Internal.Impl.Tree.{u, v} α β (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner sz k' v' l' r')) (OfNat.ofNat 1)) := Std.DTreeMap.Internal.Impl.insertMax k v (Std.DTreeMap.Internal.Impl.inner sz k' v' l' r') (Std.DTreeMap.Internal.Impl.link._proof_12 sz k' v' l' r' hr)
Std.DTreeMap.Internal.Impl.Tree.mk (Std.DTreeMap.Internal.Impl.Tree.impl d) (Std.DTreeMap.Internal.Impl.link._proof_14 k v sz k' v' l' r' hr) (Std.DTreeMap.Internal.Impl.link._proof_16 k v sz k' v' l' r' hr)) fun szr k'' v'' l'' r'' hr x ↦ dite (LT.lt (HMul.hMul Std.DTreeMap.Internal.delta sz) szr) (fun h₁ ↦ Std.DTreeMap.Internal.Impl.link.match_1 sz k' v' l' r' l'' (fun x ↦ Std.DTreeMap.Internal.Impl.Tree.{u, v} α β (HAdd.hAdd (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner sz k' v' l' r')) (OfNat.ofNat 1)) (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner szr k'' v'' l'' r'')))) (x (PSigma.mk (Std.DTreeMap.Internal.Impl.inner sz k' v' l' r') (PSigma.mk l'' (PSigma.mk (Std.DTreeMap.Internal.Impl.link._proof_18 sz k' v' l' r' hr szr k'' v'' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_4 sz k' v' l' r' hr szr k'' v'' l'' r'' hr)))) (Std.DTreeMap.Internal.Impl.link._unary._proof_1 sz k' v' l' r' hr szr k'' v'' l'' r'' hr h₁)) fun ℓ hℓ₁ hℓ₂ ↦ Std.DTreeMap.Internal.Impl.Tree.mk (Std.DTreeMap.Internal.Impl.balanceLErase k'' v'' ℓ r'' (Std.DTreeMap.Internal.Impl.glue._proof_10 sz k' v' l' r' hr szr k'' v'' l'' r'' hr ℓ hℓ₁) (Std.DTreeMap.Internal.Impl.glue._proof_6 sz k' v' l' r' hr szr k'' v'' l'' r'' hr) (Std.DTreeMap.Internal.Impl.link._proof_21 sz k' v' l' r' hr szr k'' v'' l'' r'' hr h₁ ℓ hℓ₂)) (Std.DTreeMap.Internal.Impl.link._proof_23 sz k' v' l' r' hr szr k'' v'' l'' r'' hr h₁ ℓ hℓ₁ hℓ₂) (Std.DTreeMap.Internal.Impl.link._proof_26 sz k' v' l' r' hr szr k'' v'' l'' r'' hr h₁ ℓ hℓ₁ hℓ₂)) fun h₁ ↦ dite (LT.lt (HMul.hMul Std.DTreeMap.Internal.delta szr) sz) (fun h₂ ↦ Std.DTreeMap.Internal.Impl.link.match_3 r' szr k'' v'' l'' r'' (fun x ↦ Std.DTreeMap.Internal.Impl.Tree.{u, v} α β (HAdd.hAdd (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner sz k' v' l' r')) (OfNat.ofNat 1)) (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner szr k'' v'' l'' r'')))) (x (PSigma.mk r' (PSigma.mk (Std.DTreeMap.Internal.Impl.inner szr k'' v'' l'' r'') (PSigma.mk (Std.DTreeMap.Internal.Impl.glue._proof_16 sz k' v' l' r' hr szr k'' v'' l'' r'' hr) (Std.DTreeMap.Internal.Impl.link._proof_28 sz k' v' l' r' hr szr k'' v'' l'' r'' hr)))) (Std.DTreeMap.Internal.Impl.link._unary._proof_2 sz k' v' l' r' hr szr k'' v'' l'' r'' hr h₂)) fun ℓ hℓ₁ hℓ₂ ↦ Std.DTreeMap.Internal.Impl.Tree.mk (Std.DTreeMap.Internal.Impl.balanceRErase k' v' l' ℓ (Std.DTreeMap.Internal.Impl.glue._proof_14 sz k' v' l' r' hr szr k'' v'' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_10 sz k' v' l' r' hr szr k'' v'' l'' r'' hr ℓ hℓ₁) (Std.DTreeMap.Internal.Impl.link._proof_31 sz k' v' l' r' hr szr k'' v'' l'' r'' hr h₁ h₂ ℓ hℓ₂)) (Std.DTreeMap.Internal.Impl.link._proof_33 sz k' v' l' r' hr szr k'' v'' l'' r'' hr h₁ h₂ ℓ hℓ₁ hℓ₂) (Std.DTreeMap.Internal.Impl.link._proof_36 sz k' v' l' r' hr szr k'' v'' l'' r'' hr h₁ h₂ ℓ hℓ₁ hℓ₂)) fun h₂ ↦ Std.DTreeMap.Internal.Impl.Tree.mk (Std.DTreeMap.Internal.Impl.inner (HAdd.hAdd (HAdd.hAdd sz (OfNat.ofNat 1)) szr) k v (Std.DTreeMap.Internal.Impl.inner sz k' v' l' r') (Std.DTreeMap.Internal.Impl.inner szr k'' v'' l'' r'')) (Std.DTreeMap.Internal.Impl.link._unary._proof_3 k v sz k' v' l' r' hr szr k'' v'' l'' r'' hr h₁ h₂) (Std.DTreeMap.Internal.Impl.link._unary._proof_4 k v sz k' v' l' r' szr k'' v'' l'' r''))))) snd))) snd))) _x))) (PSigma.rec (fun fst snd ↦ PSigma.rec (fun fst snd ↦ PSigma.rec (fun fst snd ↦ Std.DTreeMap.Internal.Impl.insertMin.match_3 (fun l hl ↦ Std.DTreeMap.Internal.Impl.Tree.{u, v} α β (HAdd.hAdd (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size l) (OfNat.ofNat 1)) (Std.DTreeMap.Internal.Impl.size fst))) fst fst (fun hr ↦ Std.DTreeMap.Internal.Impl.Tree.mk (Std.DTreeMap.Internal.Impl.Tree.impl (Std.DTreeMap.Internal.Impl.insertMin k v fst (Std.DTreeMap.Internal.Impl.link._proof_6 fst snd))) (Std.DTreeMap.Internal.Impl.link._proof_8 k v fst snd) (Std.DTreeMap.Internal.Impl.link._proof_10 k v fst snd)) fun szl k' v' l' r' hl ↦ Std.DTreeMap.Internal.Impl.insertMin.match_3 (fun r hr ↦ Std.DTreeMap.Internal.Impl.Tree.{u, v} α β (HAdd.hAdd (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner szl k' v' l' r')) (OfNat.ofNat 1)) (Std.DTreeMap.Internal.Impl.size r))) fst snd (fun hr ↦ Std.DTreeMap.Internal.Impl.Tree.mk (Std.DTreeMap.Internal.Impl.Tree.impl (Std.DTreeMap.Internal.Impl.insertMax k v (Std.DTreeMap.Internal.Impl.inner szl k' v' l' r') (Std.DTreeMap.Internal.Impl.link._proof_12 szl k' v' l' r' hl))) (Std.DTreeMap.Internal.Impl.link._proof_14 k v szl k' v' l' r' hl) (Std.DTreeMap.Internal.Impl.link._proof_16 k v szl k' v' l' r' hl)) fun szr k'' v'' l'' r'' hr ↦ dite (LT.lt (HMul.hMul Std.DTreeMap.Internal.delta szl) szr) (fun h₁ ↦ Std.DTreeMap.Internal.Impl.link.match_1 szl k' v' l' r' l'' (fun x ↦ Std.DTreeMap.Internal.Impl.Tree.{u, v} α β (HAdd.hAdd (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner szl k' v' l' r')) (OfNat.ofNat 1)) (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner szr k'' v'' l'' r'')))) (Std.DTreeMap.Internal.Impl.link._unary k v (PSigma.mk (Std.DTreeMap.Internal.Impl.inner szl k' v' l' r') (PSigma.mk l'' (PSigma.mk (Std.DTreeMap.Internal.Impl.link._proof_18 szl k' v' l' r' hl szr k'' v'' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_4 szl k' v' l' r' hl szr k'' v'' l'' r'' hr))))) fun ℓ hℓ₁ hℓ₂ ↦ Std.DTreeMap.Internal.Impl.Tree.mk (Std.DTreeMap.Internal.Impl.balanceLErase k'' v'' ℓ r'' (Std.DTreeMap.Internal.Impl.glue._proof_10 szl k' v' l' r' hl szr k'' v'' l'' r'' hr ℓ hℓ₁) (Std.DTreeMap.Internal.Impl.glue._proof_6 szl k' v' l' r' hl szr k'' v'' l'' r'' hr) (Std.DTreeMap.Internal.Impl.link._proof_21 szl k' v' l' r' hl szr k'' v'' l'' r'' hr h₁ ℓ hℓ₂)) (Std.DTreeMap.Internal.Impl.link._proof_23 szl k' v' l' r' hl szr k'' v'' l'' r'' hr h₁ ℓ hℓ₁ hℓ₂) (Std.DTreeMap.Internal.Impl.link._proof_26 szl k' v' l' r' hl szr k'' v'' l'' r'' hr h₁ ℓ hℓ₁ hℓ₂)) fun h₁ ↦ dite (LT.lt (HMul.hMul Std.DTreeMap.Internal.delta szr) szl) (fun h₂ ↦ Std.DTreeMap.Internal.Impl.link.match_3 r' szr k'' v'' l'' r'' (fun x ↦ Std.DTreeMap.Internal.Impl.Tree.{u, v} α β (HAdd.hAdd (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner szl k' v' l' r')) (OfNat.ofNat 1)) (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner szr k'' v'' l'' r'')))) (Std.DTreeMap.Internal.Impl.link._unary k v (PSigma.mk r' (PSigma.mk (Std.DTreeMap.Internal.Impl.inner szr k'' v'' l'' r'') (PSigma.mk (Std.DTreeMap.Internal.Impl.glue._proof_16 szl k' v' l' r' hl szr k'' v'' l'' r'' hr) (Std.DTreeMap.Internal.Impl.link._proof_28 szl k' v' l' r' hl szr k'' v'' l'' r'' hr))))) fun ℓ hℓ₁ hℓ₂ ↦ Std.DTreeMap.Internal.Impl.Tree.mk (Std.DTreeMap.Internal.Impl.balanceRErase k' v' l' ℓ (Std.DTreeMap.Internal.Impl.glue._proof_14 szl k' v' l' r' hl szr k'' v'' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_10 szl k' v' l' r' hl szr k'' v'' l'' r'' hr ℓ hℓ₁) (Std.DTreeMap.Internal.Impl.link._proof_31 szl k' v' l' r' hl szr k'' v'' l'' r'' hr h₁ h₂ ℓ hℓ₂)) (Std.DTreeMap.Internal.Impl.link._proof_33 szl k' v' l' r' hl szr k'' v'' l'' r'' hr h₁ h₂ ℓ hℓ₁ hℓ₂) (Std.DTreeMap.Internal.Impl.link._proof_36 szl k' v' l' r' hl szr k'' v'' l'' r'' hr h₁ h₂ ℓ hℓ₁ hℓ₂)) fun h₂ ↦ Std.DTreeMap.Internal.Impl.Tree.mk (Std.DTreeMap.Internal.Impl.inner (HAdd.hAdd (HAdd.hAdd szl (OfNat.ofNat 1)) szr) k v (Std.DTreeMap.Internal.Impl.inner szl k' v' l' r') (Std.DTreeMap.Internal.Impl.inner szr k'' v'' l'' r'')) (Eq.ndrec (Std.DTreeMap.Internal.Impl.link._proof_39 k v szl k' v' l' r' hl szr k'' v'' l'' r'' hr h₁ h₂) (id (Eq.refl (Std.DTreeMap.Internal.Impl.inner (HAdd.hAdd (HAdd.hAdd szl (OfNat.ofNat 1)) szr) k v (Std.DTreeMap.Internal.Impl.inner szl k' v' l' r') (Std.DTreeMap.Internal.Impl.inner szr k'' v'' l'' r''))))) (Eq.ndrec (Std.DTreeMap.Internal.Impl.link._proof_41 k v szl k' v' l' r' szr k'' v'' l'' r'') (id (Eq.refl (Std.DTreeMap.Internal.Impl.inner (HAdd.hAdd (HAdd.hAdd szl (OfNat.ofNat 1)) szr) k v (Std.DTreeMap.Internal.Impl.inner szl k' v' l' r') (Std.DTreeMap.Internal.Impl.inner szr k'' v'' l'' r'')))))) snd) snd) _x))) (Eq.refl (PSigma.rec (fun fst snd ↦ PSigma.rec (fun fst snd ↦ PSigma.rec (fun fst snd ↦ Std.DTreeMap.Internal.Impl.insertMin.match_3 (fun l hl ↦ Std.DTreeMap.Internal.Impl.Tree.{u, v} α β (HAdd.hAdd (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size l) (OfNat.ofNat 1)) (Std.DTreeMap.Internal.Impl.size fst))) fst fst (fun hr ↦ Std.DTreeMap.Internal.Impl.Tree.mk (Std.DTreeMap.Internal.Impl.Tree.impl (Std.DTreeMap.Internal.Impl.insertMin k v fst (Std.DTreeMap.Internal.Impl.link._proof_6 fst snd))) (Std.DTreeMap.Internal.Impl.link._proof_8 k v fst snd) (Std.DTreeMap.Internal.Impl.link._proof_10 k v fst snd)) fun sz k' v' l' r' hr ↦ Std.DTreeMap.Internal.Impl.insertMin.match_3 (fun r hr ↦ Std.DTreeMap.Internal.Impl.Tree.{u, v} α β (HAdd.hAdd (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner sz k' v' l' r')) (OfNat.ofNat 1)) (Std.DTreeMap.Internal.Impl.size r))) fst snd (fun hr ↦ Std.DTreeMap.Internal.Impl.Tree.mk (Std.DTreeMap.Internal.Impl.Tree.impl (Std.DTreeMap.Internal.Impl.insertMax k v (Std.DTreeMap.Internal.Impl.inner sz k' v' l' r') (Std.DTreeMap.Internal.Impl.link._proof_12 sz k' v' l' r' hr))) (Std.DTreeMap.Internal.Impl.link._proof_14 k v sz k' v' l' r' hr) (Std.DTreeMap.Internal.Impl.link._proof_16 k v sz k' v' l' r' hr)) fun sz k' v' l' r' hr ↦ dite (LT.lt (HMul.hMul Std.DTreeMap.Internal.delta sz) sz) (fun h₁ ↦ Std.DTreeMap.Internal.Impl.link.match_1 sz k' v' l' r' l' (fun x ↦ Std.DTreeMap.Internal.Impl.Tree.{u, v} α β (HAdd.hAdd (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner sz k' v' l' r')) (OfNat.ofNat 1)) (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner sz k' v' l' r')))) (Std.DTreeMap.Internal.Impl.link._unary k v (PSigma.mk (Std.DTreeMap.Internal.Impl.inner sz k' v' l' r') (PSigma.mk l' (PSigma.mk (Std.DTreeMap.Internal.Impl.link._proof_18 sz k' v' l' r' hr sz k' v' l' r' hr) (Std.DTreeMap.Internal.Impl.glue._proof_4 sz k' v' l' r' hr sz k' v' l' r' hr))))) fun ℓ hℓ₁ hℓ₂ ↦ Std.DTreeMap.Internal.Impl.Tree.mk (Std.DTreeMap.Internal.Impl.balanceLErase k' v' ℓ r' (Std.DTreeMap.Internal.Impl.glue._proof_10 sz k' v' l' r' hr sz k' v' l' r' hr ℓ hℓ₁) (Std.DTreeMap.Internal.Impl.glue._proof_6 sz k' v' l' r' hr sz k' v' l' r' hr) (Std.DTreeMap.Internal.Impl.link._proof_21 sz k' v' l' r' hr sz k' v' l' r' hr h₁ ℓ hℓ₂)) (Std.DTreeMap.Internal.Impl.link._proof_23 sz k' v' l' r' hr sz k' v' l' r' hr h₁ ℓ hℓ₁ hℓ₂) (Std.DTreeMap.Internal.Impl.link._proof_26 sz k' v' l' r' hr sz k' v' l' r' hr h₁ ℓ hℓ₁ hℓ₂)) fun h₁ ↦ dite (LT.lt (HMul.hMul Std.DTreeMap.Internal.delta sz) sz) (fun h₂ ↦ Std.DTreeMap.Internal.Impl.link.match_3 r' sz k' v' l' r' (fun x ↦ Std.DTreeMap.Internal.Impl.Tree.{u, v} α β (HAdd.hAdd (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner sz k' v' l' r')) (OfNat.ofNat 1)) (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner sz k' v' l' r')))) (Std.DTreeMap.Internal.Impl.link._unary k v (PSigma.mk r' (PSigma.mk (Std.DTreeMap.Internal.Impl.inner sz k' v' l' r') (PSigma.mk (Std.DTreeMap.Internal.Impl.glue._proof_16 sz k' v' l' r' hr sz k' v' l' r' hr) (Std.DTreeMap.Internal.Impl.link._proof_28 sz k' v' l' r' hr sz k' v' l' r' hr))))) fun ℓ hℓ₁ hℓ₂ ↦ Std.DTreeMap.Internal.Impl.Tree.mk (Std.DTreeMap.Internal.Impl.balanceRErase k' v' l' ℓ (Std.DTreeMap.Internal.Impl.glue._proof_14 sz k' v' l' r' hr sz k' v' l' r' hr) (Std.DTreeMap.Internal.Impl.glue._proof_10 sz k' v' l' r' hr sz k' v' l' r' hr ℓ hℓ₁) (Std.DTreeMap.Internal.Impl.link._proof_31 sz k' v' l' r' hr sz k' v' l' r' hr h₁ h₂ ℓ hℓ₂)) (Std.DTreeMap.Internal.Impl.link._proof_33 sz k' v' l' r' hr sz k' v' l' r' hr h₁ h₂ ℓ hℓ₁ hℓ₂) (Std.DTreeMap.Internal.Impl.link._proof_36 sz k' v' l' r' hr sz k' v' l' r' hr h₁ h₂ ℓ hℓ₁ hℓ₂)) fun h₂ ↦ Std.DTreeMap.Internal.Impl.Tree.mk (Std.DTreeMap.Internal.Impl.inner (HAdd.hAdd (HAdd.hAdd sz (OfNat.ofNat 1)) sz) k v (Std.DTreeMap.Internal.Impl.inner sz k' v' l' r') (Std.DTreeMap.Internal.Impl.inner sz k' v' l' r')) (Std.DTreeMap.Internal.Impl.link._unary._proof_3 k v sz k' v' l' r' hr sz k' v' l' r' hr h₁ h₂) (Std.DTreeMap.Internal.Impl.link._unary._proof_4 k v sz k' v' l' r' sz k' v' l' r')) snd) snd) _x))))
has type
  (size : Nat) → (k : α) → (v : β k) → (l : Std.DTreeMap.Internal.Impl β) → (r : Std.DTreeMap.Internal.Impl β) → (fun x ↦ (hr : Std.DTreeMap.Internal.Impl.Balanced x) → (fun r hr ↦ Std.DTreeMap.Internal.Impl.Tree.{u, v} α β (HAdd.hAdd (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k v l r)) (OfNat.ofNat 1)) (Std.DTreeMap.Internal.Impl.size r))) x hr) l → (fun x ↦ (hr : Std.DTreeMap.Internal.Impl.Balanced x) → (fun r hr ↦ Std.DTreeMap.Internal.Impl.Tree.{u, v} α β (HAdd.hAdd (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k v l r)) (OfNat.ofNat 1)) (Std.DTreeMap.Internal.Impl.size r))) x hr) r → Std.DTreeMap.Internal.Impl.Balanced (Std.DTreeMap.Internal.Impl.inner size k v l r) → Std.DTreeMap.Internal.Impl.Tree.{u, v} α β (HAdd.hAdd (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k v l r)) (OfNat.ofNat 1)) (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k v l r)))
but is expected to have type
  (size : Nat) → (k : α) → (v : β k) → (l : Std.DTreeMap.Internal.Impl β) → (r : Std.DTreeMap.Internal.Impl β) → (fun x ↦ (hr : Std.DTreeMap.Internal.Impl.Balanced x) → (fun r hr ↦ Std.DTreeMap.Internal.Impl.Tree.{u, v} α β (HAdd.hAdd (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k v l r)) (OfNat.ofNat 1)) (Std.DTreeMap.Internal.Impl.size r))) x hr) l → (fun x ↦ (hr : Std.DTreeMap.Internal.Impl.Balanced x) → (fun r hr ↦ Std.DTreeMap.Internal.Impl.Tree.{u, v} α β (HAdd.hAdd (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k v l r)) (OfNat.ofNat 1)) (Std.DTreeMap.Internal.Impl.size r))) x hr) r → (fun x ↦ (hr : Std.DTreeMap.Internal.Impl.Balanced x) → (fun r hr ↦ Std.DTreeMap.Internal.Impl.Tree.{u, v} α β (HAdd.hAdd (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k v l r)) (OfNat.ofNat 1)) (Std.DTreeMap.Internal.Impl.size r))) x hr) (Std.DTreeMap.Internal.Impl.inner size k v l r)
theorem Std.DTreeMap.Internal.Impl.link.eq_def.{u, v} : ∀ {α : Type u}, ∀ {β : α → Type v}, ∀ (k : α), ∀ (v : β k), ∀ (l : Std.DTreeMap.Internal.Impl β), ∀ (r : Std.DTreeMap.Internal.Impl β), ∀ (hl : Std.DTreeMap.Internal.Impl.Balanced l), ∀ (hr : Std.DTreeMap.Internal.Impl.Balanced r), Eq (Std.DTreeMap.Internal.Impl.link k v l r hl hr) (Std.DTreeMap.Internal.Impl.insertMin.match_3 (fun l hl ↦ Std.DTreeMap.Internal.Impl.Tree.{u, v} α β (HAdd.hAdd (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size l) (OfNat.ofNat 1)) (Std.DTreeMap.Internal.Impl.size r))) l hl (fun hl ↦ let d : Std.DTreeMap.Internal.Impl.Tree.{u, v} α β (HAdd.hAdd (OfNat.ofNat 1) (Std.DTreeMap.Internal.Impl.size r)) := Std.DTreeMap.Internal.Impl.insertMin k v r (Std.DTreeMap.Internal.Impl.link._proof_6 r hr)
Std.DTreeMap.Internal.Impl.Tree.mk (Std.DTreeMap.Internal.Impl.Tree.impl d) (Std.DTreeMap.Internal.Impl.link._proof_8 k v r hr) (Std.DTreeMap.Internal.Impl.link._proof_10 k v r hr)) fun szl k' v' l' r' hl ↦ Std.DTreeMap.Internal.Impl.insertMin.match_3 (fun r hr ↦ Std.DTreeMap.Internal.Impl.Tree.{u, v} α β (HAdd.hAdd (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner szl k' v' l' r')) (OfNat.ofNat 1)) (Std.DTreeMap.Internal.Impl.size r))) r hr (fun hr ↦ let d : Std.DTreeMap.Internal.Impl.Tree.{u, v} α β (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner szl k' v' l' r')) (OfNat.ofNat 1)) := Std.DTreeMap.Internal.Impl.insertMax k v (Std.DTreeMap.Internal.Impl.inner szl k' v' l' r') (Std.DTreeMap.Internal.Impl.link._proof_12 szl k' v' l' r' hl)
Std.DTreeMap.Internal.Impl.Tree.mk (Std.DTreeMap.Internal.Impl.Tree.impl d) (Std.DTreeMap.Internal.Impl.link._proof_14 k v szl k' v' l' r' hl) (Std.DTreeMap.Internal.Impl.link._proof_16 k v szl k' v' l' r' hl)) fun szr k'' v'' l'' r'' hr ↦ dite (LT.lt (HMul.hMul Std.DTreeMap.Internal.delta szl) szr) (fun h₁ ↦ Std.DTreeMap.Internal.Impl.link.match_1 szl k' v' l' r' l'' (fun x ↦ Std.DTreeMap.Internal.Impl.Tree.{u, v} α β (HAdd.hAdd (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner szl k' v' l' r')) (OfNat.ofNat 1)) (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner szr k'' v'' l'' r'')))) (Std.DTreeMap.Internal.Impl.link k v (Std.DTreeMap.Internal.Impl.inner szl k' v' l' r') l'' (Std.DTreeMap.Internal.Impl.link._proof_18 szl k' v' l' r' hl szr k'' v'' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_4 szl k' v' l' r' hl szr k'' v'' l'' r'' hr)) fun ℓ hℓ₁ hℓ₂ ↦ Std.DTreeMap.Internal.Impl.Tree.mk (Std.DTreeMap.Internal.Impl.balanceLErase k'' v'' ℓ r'' (Std.DTreeMap.Internal.Impl.glue._proof_10 szl k' v' l' r' hl szr k'' v'' l'' r'' hr ℓ hℓ₁) (Std.DTreeMap.Internal.Impl.glue._proof_6 szl k' v' l' r' hl szr k'' v'' l'' r'' hr) (Std.DTreeMap.Internal.Impl.link._proof_21 szl k' v' l' r' hl szr k'' v'' l'' r'' hr h₁ ℓ hℓ₂)) (Std.DTreeMap.Internal.Impl.link._proof_23 szl k' v' l' r' hl szr k'' v'' l'' r'' hr h₁ ℓ hℓ₁ hℓ₂) (Std.DTreeMap.Internal.Impl.link._proof_26 szl k' v' l' r' hl szr k'' v'' l'' r'' hr h₁ ℓ hℓ₁ hℓ₂)) fun h₁ ↦ dite (LT.lt (HMul.hMul Std.DTreeMap.Internal.delta szr) szl) (fun h₂ ↦ Std.DTreeMap.Internal.Impl.link.match_3 r' szr k'' v'' l'' r'' (fun x ↦ Std.DTreeMap.Internal.Impl.Tree.{u, v} α β (HAdd.hAdd (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner szl k' v' l' r')) (OfNat.ofNat 1)) (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner szr k'' v'' l'' r'')))) (Std.DTreeMap.Internal.Impl.link k v r' (Std.DTreeMap.Internal.Impl.inner szr k'' v'' l'' r'') (Std.DTreeMap.Internal.Impl.glue._proof_16 szl k' v' l' r' hl szr k'' v'' l'' r'' hr) (Std.DTreeMap.Internal.Impl.link._proof_28 szl k' v' l' r' hl szr k'' v'' l'' r'' hr)) fun ℓ hℓ₁ hℓ₂ ↦ Std.DTreeMap.Internal.Impl.Tree.mk (Std.DTreeMap.Internal.Impl.balanceRErase k' v' l' ℓ (Std.DTreeMap.Internal.Impl.glue._proof_14 szl k' v' l' r' hl szr k'' v'' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_10 szl k' v' l' r' hl szr k'' v'' l'' r'' hr ℓ hℓ₁) (Std.DTreeMap.Internal.Impl.link._proof_31 szl k' v' l' r' hl szr k'' v'' l'' r'' hr h₁ h₂ ℓ hℓ₂)) (Std.DTreeMap.Internal.Impl.link._proof_33 szl k' v' l' r' hl szr k'' v'' l'' r'' hr h₁ h₂ ℓ hℓ₁ hℓ₂) (Std.DTreeMap.Internal.Impl.link._proof_36 szl k' v' l' r' hl szr k'' v'' l'' r'' hr h₁ h₂ ℓ hℓ₁ hℓ₂)) fun h₂ ↦ Std.DTreeMap.Internal.Impl.Tree.mk (Std.DTreeMap.Internal.Impl.inner (HAdd.hAdd (HAdd.hAdd szl (OfNat.ofNat 1)) szr) k v (Std.DTreeMap.Internal.Impl.inner szl k' v' l' r') (Std.DTreeMap.Internal.Impl.inner szr k'' v'' l'' r'')) (Std.DTreeMap.Internal.Impl.link._proof_39 k v szl k' v' l' r' hl szr k'' v'' l'' r'' hr h₁ h₂) (Std.DTreeMap.Internal.Impl.link._proof_41 k v szl k' v' l' r' szr k'' v'' l'' r'')) := fun {α β} k v l r hl hr ↦ id (Std.DTreeMap.Internal.Impl.link._unary.eq_def k v (PSigma.mk l (PSigma.mk r (PSigma.mk hl hr))))
has type
  (size : Nat) → (k : α) → (v : β k) → (l : Std.DTreeMap.Internal.Impl β) → (r : Std.DTreeMap.Internal.Impl β) → (fun x ↦ (hr : Std.DTreeMap.Internal.Impl.Balanced x) → (fun r hr ↦ Std.DTreeMap.Internal.Impl.Tree.{u, v} α β (HAdd.hAdd (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k v l r)) (OfNat.ofNat 1)) (Std.DTreeMap.Internal.Impl.size r))) x hr) l → (fun x ↦ (hr : Std.DTreeMap.Internal.Impl.Balanced x) → (fun r hr ↦ Std.DTreeMap.Internal.Impl.Tree.{u, v} α β (HAdd.hAdd (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k v l r)) (OfNat.ofNat 1)) (Std.DTreeMap.Internal.Impl.size r))) x hr) r → Std.DTreeMap.Internal.Impl.Balanced (Std.DTreeMap.Internal.Impl.inner size k v l r) → Std.DTreeMap.Internal.Impl.Tree.{u, v} α β (HAdd.hAdd (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k v l r)) (OfNat.ofNat 1)) (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k v l r)))
but is expected to have type
  (size : Nat) → (k : α) → (v : β k) → (l : Std.DTreeMap.Internal.Impl β) → (r : Std.DTreeMap.Internal.Impl β) → (fun x ↦ (hr : Std.DTreeMap.Internal.Impl.Balanced x) → (fun r hr ↦ Std.DTreeMap.Internal.Impl.Tree.{u, v} α β (HAdd.hAdd (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k v l r)) (OfNat.ofNat 1)) (Std.DTreeMap.Internal.Impl.size r))) x hr) l → (fun x ↦ (hr : Std.DTreeMap.Internal.Impl.Balanced x) → (fun r hr ↦ Std.DTreeMap.Internal.Impl.Tree.{u, v} α β (HAdd.hAdd (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k v l r)) (OfNat.ofNat 1)) (Std.DTreeMap.Internal.Impl.size r))) x hr) r → (fun x ↦ (hr : Std.DTreeMap.Internal.Impl.Balanced x) → (fun r hr ↦ Std.DTreeMap.Internal.Impl.Tree.{u, v} α β (HAdd.hAdd (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k v l r)) (OfNat.ofNat 1)) (Std.DTreeMap.Internal.Impl.size r))) x hr) (Std.DTreeMap.Internal.Impl.inner size k v l r)
theorem Std.DTreeMap.Internal.Impl.toListModel_insertMin.{u, v} : ∀ {α : Type u}, ∀ {β : α → Type v}, ∀ [inst : Ord.{u} α], ∀ {k : α}, ∀ {v : β k}, ∀ {t : Std.DTreeMap.Internal.Impl β}, ∀ {h : Std.DTreeMap.Internal.Impl.Balanced t}, Eq (Std.DTreeMap.Internal.Impl.toListModel (Std.DTreeMap.Internal.Impl.Tree.impl (Std.DTreeMap.Internal.Impl.insertMin k v t h))) (List.cons (Sigma.mk k v) (Std.DTreeMap.Internal.Impl.toListModel t)) := fun {α β} [inst : Ord.{u} #1] {k v t h} ↦ Std.DTreeMap.Internal.Impl.brecOn t (fun {t} f {h} ↦ _private.Std.Data.DTreeMap.Internal.WF.Lemmas.0.Std.DTreeMap.Internal.Impl.toListModel_insertMin.match_1_1 (fun t {h} ↦ ∀ (x : Std.DTreeMap.Internal.Impl.below t), Eq (Std.DTreeMap.Internal.Impl.toListModel (Std.DTreeMap.Internal.Impl.Tree.impl (Std.DTreeMap.Internal.Impl.insertMin k v t h))) (List.cons (Sigma.mk k v) (Std.DTreeMap.Internal.Impl.toListModel t))) t h (fun h x ↦ Eq.refl (Std.DTreeMap.Internal.Impl.toListModel (Std.DTreeMap.Internal.Impl.Tree.impl (Std.DTreeMap.Internal.Impl.insertMin k v (Std.DTreeMap.Internal.Impl.leaf) h)))) (fun size k v l r h x ↦ Eq.mpr (id (congrArg (fun _a ↦ Eq (Std.DTreeMap.Internal.Impl.toListModel (Std.DTreeMap.Internal.Impl.Tree.impl _a)) (List.cons (Sigma.mk k v) (Std.DTreeMap.Internal.Impl.toListModel (Std.DTreeMap.Internal.Impl.inner size k v l r)))) (Std.DTreeMap.Internal.Impl.insertMin.eq_2 k v size k v l r h))) (of_eq_true (Eq.trans (congrFun' (congrArg (Eq) (Eq.trans (Std.DTreeMap.Internal.Impl.toListModel_balanceL) (congrFun' (congrArg (HAppend.hAppend) (x.fst.fst (Std.DTreeMap.Internal.Impl.minView._proof_9 size k v l r h))) (List.cons (Sigma.mk k v) (Std.DTreeMap.Internal.Impl.toListModel r))))) (List.cons (Sigma.mk k v) (HAppend.hAppend (Std.DTreeMap.Internal.Impl.toListModel l) (List.cons (Sigma.mk k v) (Std.DTreeMap.Internal.Impl.toListModel r))))) (eq_self (List.cons (Sigma.mk k v) (HAppend.hAppend (Std.DTreeMap.Internal.Impl.toListModel l) (List.cons (Sigma.mk k v) (Std.DTreeMap.Internal.Impl.toListModel r)))))))) f) h
has type
  (size : Nat) → (k : α) → (v : β k) → (l : Std.DTreeMap.Internal.Impl β) → (r : Std.DTreeMap.Internal.Impl β) → (fun x ↦ (hlb : Std.DTreeMap.Internal.Impl.Balanced x) → (hlr : Std.DTreeMap.Internal.Impl.BalanceLPrecond (Std.DTreeMap.Internal.Impl.size x) (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k v l r))) → (fun l hlb hlr ↦ Std.DTreeMap.Internal.Impl β) x hlb hlr) l → (fun x ↦ (hlb : Std.DTreeMap.Internal.Impl.Balanced x) → (hlr : Std.DTreeMap.Internal.Impl.BalanceLPrecond (Std.DTreeMap.Internal.Impl.size x) (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k v l r))) → (fun l hlb hlr ↦ Std.DTreeMap.Internal.Impl β) x hlb hlr) r → Std.DTreeMap.Internal.Impl.Balanced (Std.DTreeMap.Internal.Impl.inner size k v l r) → Std.DTreeMap.Internal.Impl.BalanceLPrecond (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k v l r)) (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k v l r)) → Std.DTreeMap.Internal.Impl β
but is expected to have type
  (size : Nat) → (k : α) → (v : β k) → (l : Std.DTreeMap.Internal.Impl β) → (r : Std.DTreeMap.Internal.Impl β) → (fun x ↦ (hlb : Std.DTreeMap.Internal.Impl.Balanced x) → (hlr : Std.DTreeMap.Internal.Impl.BalanceLPrecond (Std.DTreeMap.Internal.Impl.size x) (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k v l r))) → (fun l hlb hlr ↦ Std.DTreeMap.Internal.Impl β) x hlb hlr) l → (fun x ↦ (hlb : Std.DTreeMap.Internal.Impl.Balanced x) → (hlr : Std.DTreeMap.Internal.Impl.BalanceLPrecond (Std.DTreeMap.Internal.Impl.size x) (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k v l r))) → (fun l hlb hlr ↦ Std.DTreeMap.Internal.Impl β) x hlb hlr) r → (fun x ↦ (hlb : Std.DTreeMap.Internal.Impl.Balanced x) → (hlr : Std.DTreeMap.Internal.Impl.BalanceLPrecond (Std.DTreeMap.Internal.Impl.size x) (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k v l r))) → (fun l hlb hlr ↦ Std.DTreeMap.Internal.Impl β) x hlb hlr) (Std.DTreeMap.Internal.Impl.inner size k v l r)
theorem Std.DTreeMap.Internal.Impl.toListModel_insertMax.{u, v} : ∀ {α : Type u}, ∀ {β : α → Type v}, ∀ [inst : Ord.{u} α], ∀ {k : α}, ∀ {v : β k}, ∀ {t : Std.DTreeMap.Internal.Impl β}, ∀ {h : Std.DTreeMap.Internal.Impl.Balanced t}, Eq (Std.DTreeMap.Internal.Impl.toListModel (Std.DTreeMap.Internal.Impl.Tree.impl (Std.DTreeMap.Internal.Impl.insertMax k v t h))) (HAppend.hAppend (Std.DTreeMap.Internal.Impl.toListModel t) (List.cons (Sigma.mk k v) (List.nil))) := fun {α β} [inst : Ord.{u} #1] {k v t h} ↦ Std.DTreeMap.Internal.Impl.brecOn t (fun {t} f {h} ↦ _private.Std.Data.DTreeMap.Internal.WF.Lemmas.0.Std.DTreeMap.Internal.Impl.toListModel_insertMax.match_1_1 (fun t {h} ↦ ∀ (x : Std.DTreeMap.Internal.Impl.below t), Eq (Std.DTreeMap.Internal.Impl.toListModel (Std.DTreeMap.Internal.Impl.Tree.impl (Std.DTreeMap.Internal.Impl.insertMax k v t h))) (HAppend.hAppend (Std.DTreeMap.Internal.Impl.toListModel t) (List.cons (Sigma.mk k v) (List.nil)))) t h (fun h x ↦ Eq.refl (Std.DTreeMap.Internal.Impl.toListModel (Std.DTreeMap.Internal.Impl.Tree.impl (Std.DTreeMap.Internal.Impl.insertMax k v (Std.DTreeMap.Internal.Impl.leaf) h)))) (fun size k v l r h x ↦ Eq.mpr (id (congrArg (fun _a ↦ Eq (Std.DTreeMap.Internal.Impl.toListModel (Std.DTreeMap.Internal.Impl.Tree.impl _a)) (HAppend.hAppend (Std.DTreeMap.Internal.Impl.toListModel (Std.DTreeMap.Internal.Impl.inner size k v l r)) (List.cons (Sigma.mk k v) (List.nil)))) (Std.DTreeMap.Internal.Impl.insertMax.eq_2 k v size k v l r h))) (of_eq_true (Eq.trans (congr (congrArg (Eq) (Eq.trans (Std.DTreeMap.Internal.Impl.toListModel_balanceR) (congrArg (HAppend.hAppend (Std.DTreeMap.Internal.Impl.toListModel l)) (congrArg (List.cons (Sigma.mk k v)) (x.snd.fst (Std.DTreeMap.Internal.Impl.minView._proof_11 size k v l r h)))))) (List.append_assoc (Std.DTreeMap.Internal.Impl.toListModel l) (List.cons (Sigma.mk k v) (Std.DTreeMap.Internal.Impl.toListModel r)) (List.cons (Sigma.mk k v) (List.nil)))) (eq_self (HAppend.hAppend (Std.DTreeMap.Internal.Impl.toListModel l) (List.cons (Sigma.mk k v) (HAppend.hAppend (Std.DTreeMap.Internal.Impl.toListModel r) (List.cons (Sigma.mk k v) (List.nil))))))))) f) h
has type
  (size : Nat) → (k : α) → (v : β k) → (l : Std.DTreeMap.Internal.Impl β) → (r : Std.DTreeMap.Internal.Impl β) → (fun x ↦ (hlb : Std.DTreeMap.Internal.Impl.Balanced x) → (hlr : Std.DTreeMap.Internal.Impl.BalanceLPrecond (Std.DTreeMap.Internal.Impl.size x) (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k v l r))) → (fun l hlb hlr ↦ Std.DTreeMap.Internal.Impl β) x hlb hlr) l → (fun x ↦ (hlb : Std.DTreeMap.Internal.Impl.Balanced x) → (hlr : Std.DTreeMap.Internal.Impl.BalanceLPrecond (Std.DTreeMap.Internal.Impl.size x) (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k v l r))) → (fun l hlb hlr ↦ Std.DTreeMap.Internal.Impl β) x hlb hlr) r → Std.DTreeMap.Internal.Impl.Balanced (Std.DTreeMap.Internal.Impl.inner size k v l r) → Std.DTreeMap.Internal.Impl.BalanceLPrecond (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k v l r)) (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k v l r)) → Std.DTreeMap.Internal.Impl β
but is expected to have type
  (size : Nat) → (k : α) → (v : β k) → (l : Std.DTreeMap.Internal.Impl β) → (r : Std.DTreeMap.Internal.Impl β) → (fun x ↦ (hlb : Std.DTreeMap.Internal.Impl.Balanced x) → (hlr : Std.DTreeMap.Internal.Impl.BalanceLPrecond (Std.DTreeMap.Internal.Impl.size x) (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k v l r))) → (fun l hlb hlr ↦ Std.DTreeMap.Internal.Impl β) x hlb hlr) l → (fun x ↦ (hlb : Std.DTreeMap.Internal.Impl.Balanced x) → (hlr : Std.DTreeMap.Internal.Impl.BalanceLPrecond (Std.DTreeMap.Internal.Impl.size x) (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k v l r))) → (fun l hlb hlr ↦ Std.DTreeMap.Internal.Impl β) x hlb hlr) r → (fun x ↦ (hlb : Std.DTreeMap.Internal.Impl.Balanced x) → (hlr : Std.DTreeMap.Internal.Impl.BalanceLPrecond (Std.DTreeMap.Internal.Impl.size x) (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k v l r))) → (fun l hlb hlr ↦ Std.DTreeMap.Internal.Impl β) x hlb hlr) (Std.DTreeMap.Internal.Impl.inner size k v l r)

Test "mlir"

Expected: 👍 accept · Size: 28.8 MB · Lines: 576.3 k · lean4export: 3.1.0 · Lean: 4.27.0-nightly-2025-12-01 · 📄 Declaration · 🔗 Source

The main theorems from lean-mlir.

Test result: ✋ rejected · exit code 1 · wall time: 10.0 s · instructions: 58.7 G · max rss memory: 1.2 GB

stderr:
inductive Com : (d : Dialect) → [DialectSignature d] → Ctxt (Dialect.Ty d) → EffectKind → List.{0} (Dialect.Ty d) → Type
| Com.rets : {d : Dialect} → [inst : DialectSignature d] → {Γ : Ctxt (Dialect.Ty d)} → {tys : List.{0} (Dialect.Ty d)} → {eff : EffectKind} → HVector (Ctxt.Var Γ) tys → Com d Γ eff tys
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
             invalid return type
theorem Lean.Grind.CommRing.Mon.revlexWF._unary.eq_def : ∀ (_x : PSigma fun m₁ ↦ Lean.Grind.CommRing.Mon), Eq (Lean.Grind.CommRing.Mon.revlexWF._unary _x) (PSigma.casesOn _x fun m₁ m₂ ↦ Lean.Grind.CommRing.Mon.revlexWF.match_1.{1} (fun m₁ x ↦ Ordering) m₁ m₂ (fun _ ↦ Ordering.eq) (fun p m ↦ Ordering.gt) (fun p m ↦ Ordering.lt) fun pw₁ m₁ pw₂ m₂ ↦ cond (BEq.beq (Lean.Grind.CommRing.Power.x pw₁) (Lean.Grind.CommRing.Power.x pw₂)) (Ordering.then (Lean.Grind.CommRing.Mon.revlexWF._unary (PSigma.mk m₁ m₂)) (Lean.Grind.CommRing.powerRevlex (Lean.Grind.CommRing.Power.k pw₁) (Lean.Grind.CommRing.Power.k pw₂))) (cond (Nat.blt (Lean.Grind.CommRing.Power.x pw₁) (Lean.Grind.CommRing.Power.x pw₂)) (Ordering.then (Lean.Grind.CommRing.Mon.revlexWF._unary (PSigma.mk m₁ (Lean.Grind.CommRing.Mon.mult pw₂ m₂))) Ordering.lt) (Ordering.then (Lean.Grind.CommRing.Mon.revlexWF._unary (PSigma.mk (Lean.Grind.CommRing.Mon.mult pw₁ m₁) m₂)) Ordering.gt))) := fun _x ↦ id (Eq.trans (WellFounded.fix_eq Lean.Grind.CommRing.Mon.revlexWF._unary._proof_1 (fun _x a ↦ PSigma.casesOn _x (fun m₁ m₂ a ↦ Lean.Grind.CommRing.Mon.revlexWF.match_1.{1} (fun m₁ m₂ ↦ ((y : PSigma fun m₁ ↦ Lean.Grind.CommRing.Mon) → (invImage (fun x ↦ PSigma.casesOn x fun m₁ m₂ ↦ Prod.mk m₁ m₂) (Prod.instWellFoundedRelation (sizeOfWFRel) (sizeOfWFRel))).rel y (PSigma.mk m₁ m₂) → Ordering) → Ordering) m₁ m₂ (fun _ x ↦ Ordering.eq) (fun p m x ↦ Ordering.gt) (fun p m x ↦ Ordering.lt) (fun pw₁ m₁ pw₂ m₂ x ↦ cond (BEq.beq (Lean.Grind.CommRing.Power.x pw₁) (Lean.Grind.CommRing.Power.x pw₂)) (Ordering.then (x (PSigma.mk m₁ m₂) (Lean.Grind.CommRing.Mon.revlexWF._unary._proof_2 pw₁ m₁ pw₂ m₂)) (Lean.Grind.CommRing.powerRevlex (Lean.Grind.CommRing.Power.k pw₁) (Lean.Grind.CommRing.Power.k pw₂))) (cond (Nat.blt (Lean.Grind.CommRing.Power.x pw₁) (Lean.Grind.CommRing.Power.x pw₂)) (Ordering.then (x (PSigma.mk m₁ (Lean.Grind.CommRing.Mon.mult pw₂ m₂)) (Lean.Grind.CommRing.Mon.revlexWF._unary._proof_3 pw₁ m₁ pw₂ m₂)) Ordering.lt) (Ordering.then (x (PSigma.mk (Lean.Grind.CommRing.Mon.mult pw₁ m₁) m₂) (Lean.Grind.CommRing.Mon.revlexWF._unary._proof_4 pw₁ m₁ pw₂ m₂)) Ordering.gt))) a) a) _x) (Eq.mpr (id (congrArg (fun x ↦ Eq x (PSigma.rec (fun m₁ m₂ ↦ Lean.Grind.CommRing.Mon.revlexWF.match_1.{1} (fun m₁ x ↦ Ordering) m₁ m₂ (fun _ ↦ Ordering.eq) (fun p m ↦ Ordering.gt) (fun p m ↦ Ordering.lt) fun pw₁ m₁ pw₂ m₂ ↦ cond (BEq.beq (Lean.Grind.CommRing.Power.x pw₁) (Lean.Grind.CommRing.Power.x pw₂)) (Ordering.then (Lean.Grind.CommRing.Mon.revlexWF._unary (PSigma.mk m₁ m₂)) (Lean.Grind.CommRing.powerRevlex (Lean.Grind.CommRing.Power.k pw₁) (Lean.Grind.CommRing.Power.k pw₂))) (cond (Nat.blt (Lean.Grind.CommRing.Power.x pw₁) (Lean.Grind.CommRing.Power.x pw₂)) (Ordering.then (Lean.Grind.CommRing.Mon.revlexWF._unary (PSigma.mk m₁ (Lean.Grind.CommRing.Mon.mult pw₂ m₂))) Ordering.lt) (Ordering.then (Lean.Grind.CommRing.Mon.revlexWF._unary (PSigma.mk (Lean.Grind.CommRing.Mon.mult pw₁ m₁) m₂)) Ordering.gt))) _x)) (Eq.trans (_private.Init.Grind.Ring.CommSolver.0.PSigma.casesOn._arg_pusher (PSigma fun m₁ ↦ Lean.Grind.CommRing.Mon) (fun _x ↦ Ordering) Lean.Grind.CommRing.Mon.revlexWF._unary (fun _x y ↦ (invImage (fun x ↦ PSigma.casesOn x fun m₁ m₂ ↦ Prod.mk m₁ m₂) (Prod.instWellFoundedRelation (sizeOfWFRel) (sizeOfWFRel))).rel y _x) _x fun m₁ m₂ a ↦ Lean.Grind.CommRing.Mon.revlexWF.match_1.{1} (fun m₁ m₂ ↦ ((y : PSigma fun m₁ ↦ Lean.Grind.CommRing.Mon) → (invImage (fun x ↦ PSigma.casesOn x fun m₁ m₂ ↦ Prod.mk m₁ m₂) (Prod.instWellFoundedRelation (sizeOfWFRel) (sizeOfWFRel))).rel y (PSigma.mk m₁ m₂) → Ordering) → Ordering) m₁ m₂ (fun _ x ↦ Ordering.eq) (fun p m x ↦ Ordering.gt) (fun p m x ↦ Ordering.lt) (fun pw₁ m₁ pw₂ m₂ x ↦ cond (BEq.beq (Lean.Grind.CommRing.Power.x pw₁) (Lean.Grind.CommRing.Power.x pw₂)) (Ordering.then (x (PSigma.mk m₁ m₂) (Lean.Grind.CommRing.Mon.revlexWF._unary._proof_2 pw₁ m₁ pw₂ m₂)) (Lean.Grind.CommRing.powerRevlex (Lean.Grind.CommRing.Power.k pw₁) (Lean.Grind.CommRing.Power.k pw₂))) (cond (Nat.blt (Lean.Grind.CommRing.Power.x pw₁) (Lean.Grind.CommRing.Power.x pw₂)) (Ordering.then (x (PSigma.mk m₁ (Lean.Grind.CommRing.Mon.mult pw₂ m₂)) (Lean.Grind.CommRing.Mon.revlexWF._unary._proof_3 pw₁ m₁ pw₂ m₂)) Ordering.lt) (Ordering.then (x (PSigma.mk (Lean.Grind.CommRing.Mon.mult pw₁ m₁) m₂) (Lean.Grind.CommRing.Mon.revlexWF._unary._proof_4 pw₁ m₁ pw₂ m₂)) Ordering.gt))) a) (congrArg (fun x ↦ PSigma.rec x _x) (funext fun fst ↦ funext fun snd ↦ _private.Init.Grind.Ring.CommSolver.0.Lean.Grind.CommRing.Mon.revlexWF.match_1._arg_pusher.{1, 1, 1} (fun m₁ x ↦ Ordering) (PSigma fun m₁ ↦ Lean.Grind.CommRing.Mon) (fun _x ↦ Ordering) Lean.Grind.CommRing.Mon.revlexWF._unary (fun m₁ m₂ y ↦ (invImage (fun x ↦ PSigma.casesOn x fun m₁ m₂ ↦ Prod.mk m₁ m₂) (Prod.instWellFoundedRelation (sizeOfWFRel) (sizeOfWFRel))).rel y (PSigma.mk m₁ m₂)) fst snd (fun _ x ↦ Ordering.eq) (fun p m x ↦ Ordering.gt) (fun p m x ↦ Ordering.lt) fun pw₁ m₁ pw₂ m₂ x ↦ cond (BEq.beq (Lean.Grind.CommRing.Power.x pw₁) (Lean.Grind.CommRing.Power.x pw₂)) (Ordering.then (x (PSigma.mk m₁ m₂) (Lean.Grind.CommRing.Mon.revlexWF._unary._proof_2 pw₁ m₁ pw₂ m₂)) (Lean.Grind.CommRing.powerRevlex (Lean.Grind.CommRing.Power.k pw₁) (Lean.Grind.CommRing.Power.k pw₂))) (cond (Nat.blt (Lean.Grind.CommRing.Power.x pw₁) (Lean.Grind.CommRing.Power.x pw₂)) (Ordering.then (x (PSigma.mk m₁ (Lean.Grind.CommRing.Mon.mult pw₂ m₂)) (Lean.Grind.CommRing.Mon.revlexWF._unary._proof_3 pw₁ m₁ pw₂ m₂)) Ordering.lt) (Ordering.then (x (PSigma.mk (Lean.Grind.CommRing.Mon.mult pw₁ m₁) m₂) (Lean.Grind.CommRing.Mon.revlexWF._unary._proof_4 pw₁ m₁ pw₂ m₂)) Ordering.gt))))))) (Eq.refl (PSigma.rec (fun m₁ m₂ ↦ Lean.Grind.CommRing.Mon.revlexWF.match_1.{1} (fun m₁ x ↦ Ordering) m₁ m₂ (fun _ ↦ Ordering.eq) (fun p m ↦ Ordering.gt) (fun p m ↦ Ordering.lt) fun pw₁ m₁ pw₂ m₂ ↦ cond (BEq.beq (Lean.Grind.CommRing.Power.x pw₁) (Lean.Grind.CommRing.Power.x pw₂)) (Ordering.then (Lean.Grind.CommRing.Mon.revlexWF._unary (PSigma.mk m₁ m₂)) (Lean.Grind.CommRing.powerRevlex (Lean.Grind.CommRing.Power.k pw₁) (Lean.Grind.CommRing.Power.k pw₂))) (cond (Nat.blt (Lean.Grind.CommRing.Power.x pw₁) (Lean.Grind.CommRing.Power.x pw₂)) (Ordering.then (Lean.Grind.CommRing.Mon.revlexWF._unary (PSigma.mk m₁ (Lean.Grind.CommRing.Mon.mult pw₂ m₂))) Ordering.lt) (Ordering.then (Lean.Grind.CommRing.Mon.revlexWF._unary (PSigma.mk (Lean.Grind.CommRing.Mon.mult pw₁ m₁) m₂)) Ordering.gt))) _x))))
has type
  (p : Lean.Grind.CommRing.Power) → (m : Lean.Grind.CommRing.Mon) → (fun x ↦ (fun m₁ m₂ ↦ ((y : PSigma fun m₁ ↦ Lean.Grind.CommRing.Mon) → (invImage (fun x ↦ PSigma.casesOn x fun m₁ m₂ ↦ Prod.mk m₁ m₂) (Prod.instWellFoundedRelation (sizeOfWFRel) (sizeOfWFRel))).rel y (PSigma.mk m₁ m₂) → Ordering) → Ordering) (Lean.Grind.CommRing.Mon.mult p m) x) m → ((y : PSigma fun m₁ ↦ Lean.Grind.CommRing.Mon) → (invImage (fun x ↦ PSigma.casesOn x fun m₁ m₂ ↦ Prod.mk m₁ m₂) (Prod.instWellFoundedRelation (sizeOfWFRel) (sizeOfWFRel))).rel y (PSigma.mk (Lean.Grind.CommRing.Mon.mult p m) (Lean.Grind.CommRing.Mon.mult p m)) → Ordering) → Ordering
but is expected to have type
  (p : Lean.Grind.CommRing.Power) → (m : Lean.Grind.CommRing.Mon) → (fun x ↦ (fun m₁ m₂ ↦ ((y : PSigma fun m₁ ↦ Lean.Grind.CommRing.Mon) → (invImage (fun x ↦ PSigma.casesOn x fun m₁ m₂ ↦ Prod.mk m₁ m₂) (Prod.instWellFoundedRelation (sizeOfWFRel) (sizeOfWFRel))).rel y (PSigma.mk m₁ m₂) → Ordering) → Ordering) (Lean.Grind.CommRing.Mon.mult p m) x) m → (fun x ↦ (fun m₁ m₂ ↦ ((y : PSigma fun m₁ ↦ Lean.Grind.CommRing.Mon) → (invImage (fun x ↦ PSigma.casesOn x fun m₁ m₂ ↦ Prod.mk m₁ m₂) (Prod.instWellFoundedRelation (sizeOfWFRel) (sizeOfWFRel))).rel y (PSigma.mk m₁ m₂) → Ordering) → Ordering) (Lean.Grind.CommRing.Mon.mult p m) x) (Lean.Grind.CommRing.Mon.mult p m)
theorem Ctxt.Valuation.comap_with : ∀ {Ty : Type}, ∀ [inst : TyDenote Ty], ∀ {ty : List.{0} Ty}, ∀ [inst : DecidableEq.{1} Ty], ∀ {Γ : Ctxt Ty}, ∀ {Δ : Ctxt Ty}, ∀ {V : Ctxt.Valuation Γ}, ∀ {map : Ctxt.Hom Δ Γ}, ∀ {vs : HVector (Ctxt.Var Δ) ty}, ∀ {ws : HVector (Ctxt.Var Γ) ty}, Eq (Ctxt.Valuation.comap V (Ctxt.Hom.with map vs ws)) (Ctxt.Valuation.reassignVars (Ctxt.Valuation.comap V map) vs (HVector.map V ws)) := fun {Ty} [inst : TyDenote #0] {ty} [inst : DecidableEq.{1} #2] {Γ Δ V map vs ws} ↦ funext fun t' ↦ funext fun v' ↦ id (_private.LeanMLIR.ErasedContext.0.Ctxt.Hom.with.match_1.splitter t' (fun x ↦ Eq (HVector.«idxOf?» v' vs) x → Eq (V t' (Ctxt.Hom.with.match_1 t' (fun x ↦ Ctxt.Var Γ t') (HVector.«idxOf?» v' vs) (fun _ ↦ map t' v') fun i h ↦ Ctxt.Var.cast h (HVector.get ws i))) (Ctxt.Hom.with.match_1 t' (fun x ↦ TyDenote.toType t') (HVector.«idxOf?» v' vs) (fun _ ↦ V t' (map t' v')) fun i h ↦ Eq.rec (HVector.get (HVector.map V ws) i) h)) (HVector.«idxOf?» v' vs) (fun x h ↦ Eq.ndrec (fun heq ↦ id (of_eq_true (eq_self (V t' (map t' v'))))) (Eq.symm h) (Eq.refl (HVector.«idxOf?» v' vs))) (fun i h h ↦ Eq.ndrec (fun heq ↦ id (Eq.rec (fun v' x heq ↦ of_eq_true (Eq.trans (congrArg (Eq (V (GetElem.getElem ty (Fin.val i) (Fin.isLt i)) (HVector.get ws i))) (HVector.get_map ws V)) (eq_self (V (GetElem.getElem ty (Fin.val i) (Fin.isLt i)) (HVector.get ws i))))) h v' (HVector.«idxOf?» v' vs) heq)) (Eq.symm h) (Eq.refl (HVector.«idxOf?» v' vs))) (Eq.refl (HVector.«idxOf?» v' vs)))
has type
  ∀ (v' : Ctxt.Var Δ (List.get ty i)), ∀ (x : Option.{0} (Subtype fun i ↦ Eq (List.get ty i) (List.get ty i))), Eq (HVector.«idxOf?» v' vs) (Option.some (Subtype.mk i (Eq.refl (List.get ty i)))) → Eq (V (GetElem.getElem ty (Fin.val i) (Fin.isLt i)) (HVector.get ws i)) (HVector.get (HVector.map V ws) i)
but is expected to have type
  (fun t' h ↦ ∀ (v' : Ctxt.Var Δ t'), ∀ (x : Option.{0} (Subtype fun i ↦ Eq (List.get ty i) t')), Eq (HVector.«idxOf?» v' vs) (Option.some (Subtype.mk i h)) → Eq (V t' (Ctxt.Var.cast h (HVector.get ws i))) (Eq.rec (HVector.get (HVector.map V ws) i) h)) (List.get ty i) (Eq.refl (List.get ty i))
theorem cast_eq_iff_heq.{u_1} : ∀ {a : Sort u_1}, ∀ {a : Sort u_1}, ∀ {e : Eq a a}, ∀ {a : a}, ∀ {a' : a}, Iff (Eq (cast e a) a') (HEq a a') := fun {a a e a a'} ↦ Iff.intro (heq_of_cast_eq e) fun h ↦ HEq.casesOn h (fun h ↦ Eq.ndrec (fun {e a'} h h ↦ Eq.ndrec (fun h h ↦ Eq.refl (cast e a)) (Eq.symm (eq_of_heq h)) h) (Eq.symm h) e a' h) (Eq.refl a) (HEq.refl a') (HEq.refl h)
has type
  ∀ (h : HEq a a), HEq h (HEq.refl a) → Eq (cast e a) (cast e a)
but is expected to have type
  (fun {a'} ↦ ∀ (h : HEq a a'), HEq h (HEq.refl a) → Eq (cast e a) a') a
theorem Expr.changeVars_castCodomain : ∀ {d : Dialect}, ∀ [inst : DialectSignature d], ∀ {Γ : Ctxt (Dialect.Ty d)}, ∀ {eff : EffectKind}, ∀ {t : List.{0} (Dialect.Ty d)}, ∀ {Δ : Ctxt (Dialect.Ty d)}, ∀ {Δ' : Ctxt (Dialect.Ty d)}, ∀ (e : Expr d Γ eff t), ∀ (f : Ctxt.Hom Γ Δ), ∀ (h : Eq Δ Δ'), Eq (Expr.changeVars (Ctxt.Hom.castCodomain h f) e) (cast (of_eq_true (Eq.trans (congrArg (fun x ↦ Eq (Expr d x eff t) (Expr d Δ' eff t)) h) (eq_self (Expr d Δ' eff t)))) (Expr.changeVars f e)) := fun {d} [inst : DialectSignature #0] {Γ eff t Δ Δ'} e f h ↦ Eq.rec (Eq.refl (Expr.changeVars (Ctxt.Hom.castCodomain (Eq.refl Δ) f) e)) h
has type
  Eq (Expr.changeVars (Ctxt.Hom.castCodomain (Eq.refl Δ) f) e) (Expr.changeVars (Ctxt.Hom.castCodomain (Eq.refl Δ) f) e)
but is expected to have type
  (fun {Δ'} h ↦ Eq (Expr.changeVars (Ctxt.Hom.castCodomain h f) e) (cast (of_eq_true (Eq.trans (congrArg (fun x ↦ Eq (Expr d x eff t) (Expr d Δ' eff t)) h) (eq_self (Expr d Δ' eff t)))) (Expr.changeVars f e))) Δ (Eq.refl Δ)
checked in 9.878742s

Test "nat-rec-rules"

Expected: ✋ reject · Size: 8.2 KB · Lines: 128 · lean4export: 3.1.0 · Lean: 4.29.0-rc1 · 📄 Declaration

Proof of False via incorrect recursor rule validation.

When processing an inductive type declaration, a correct kernel must verify that the generated recursor rules match the ones provided in the export data. A checker that accidentally compares the imported rules against themselves (instead of against independently constructed rules) will accept arbitrary recursor reduction behavior.

This test defines Nat with a wrong Nat.rec succ rule that always returns hzero (ignoring the induction hypothesis). Combined with a nat literal extension that hardcodes correct arithmetic for concrete nat literals but falls back to the wrong Nat.rec rules for symbolic arguments, this creates an inconsistency that yields a proof of False.

Nanoda incorrectly accepted this proof until it was fixed.

Test result: ✋ rejected · exit code 1 · wall time: 7 ms · instructions: 12.4 M · max rss memory: 7.4 MB

stderr:
recursor Nat.rec.{u_1} : {motive : Nat → Sort u_1} → motive Nat.zero → ((n : Nat) → motive n → motive (Nat.succ n)) → (t : Nat) → motive t
rule for Nat.succ rhs head is not the corresponding minor (expected bvar #1)
checked in 0.000791s

Test "perf/app-lam"

Expected: 👍 accept · Size: 1.2 MB · Lines: 28.6 k · lean4export: 3.1.0 · Lean: 4.29.0 · 📄 Declaration · 🔗 Source

A synthetically generated term with n levels of alternating applications and lambdas, with DAG sharing.

At each level, a constant is applied to two identical lambda arguments. The export format records these as a single shared expression (DAG). Each lambda body grows with the nesting depth, referencing all enclosing binders.

This tests two aspects of checker performance:

Infer cache: Since both arguments at each level are the same expression, a checker without an infer cache re-infers the type of each shared subterm, doubling work at every level — O(2ⁿ) total.

Substitution cost: Even with a cache, type-inferring each lambda requires substituting into its body (size O(n)) at each of the n levels, giving O(n²) total. Whether this cost arises depends on the checker's binder representation.

Test result: 👍 accepted · exit code 0 · wall time: 180 ms · instructions: 1.1 G · max rss memory: 117.2 MB

stderr:
checked in 0.164303s

Test "perf/grind-ring-5"

Expected: 👍 accept · Size: 9.7 MB · Lines: 199.2 k · lean4export: 3.1.0 · Lean: 4.29.0 · 📄 Declaration · 🔗 Source

A grind tactic test from the Lean 4 test suite.

This produces a theorem with a rather large proof term that needs fast reduction.

Test result: ✋ rejected · exit code 1 · wall time: 3.4 s · instructions: 28.5 G · max rss memory: 364.7 MB

stderr:
theorem Lean.Grind.CommRing.Mon.revlexWF._unary.eq_def : ∀ (_x : PSigma fun m₁ ↦ Lean.Grind.CommRing.Mon), Eq (Lean.Grind.CommRing.Mon.revlexWF._unary _x) (PSigma.casesOn _x fun m₁ m₂ ↦ Lean.Grind.CommRing.Mon.revlexWF.match_1.{1} (fun m₁ x ↦ Ordering) m₁ m₂ (fun _ ↦ Ordering.eq) (fun p m ↦ Ordering.gt) (fun p m ↦ Ordering.lt) fun pw₁ m₁ pw₂ m₂ ↦ cond (BEq.beq (Lean.Grind.CommRing.Power.x pw₁) (Lean.Grind.CommRing.Power.x pw₂)) (Ordering.then (Lean.Grind.CommRing.Mon.revlexWF._unary (PSigma.mk m₁ m₂)) (Lean.Grind.CommRing.powerRevlex (Lean.Grind.CommRing.Power.k pw₁) (Lean.Grind.CommRing.Power.k pw₂))) (cond (Nat.blt (Lean.Grind.CommRing.Power.x pw₁) (Lean.Grind.CommRing.Power.x pw₂)) (Ordering.then (Lean.Grind.CommRing.Mon.revlexWF._unary (PSigma.mk m₁ (Lean.Grind.CommRing.Mon.mult pw₂ m₂))) Ordering.lt) (Ordering.then (Lean.Grind.CommRing.Mon.revlexWF._unary (PSigma.mk (Lean.Grind.CommRing.Mon.mult pw₁ m₁) m₂)) Ordering.gt))) := fun _x ↦ id (Eq.trans (WellFounded.fix_eq Lean.Grind.CommRing.Mon.revlexWF._unary._proof_1 (fun _x a ↦ PSigma.casesOn _x (fun m₁ m₂ a ↦ Lean.Grind.CommRing.Mon.revlexWF.match_1.{1} (fun m₁ m₂ ↦ ((y : PSigma fun m₁ ↦ Lean.Grind.CommRing.Mon) → (invImage (fun x ↦ PSigma.casesOn x fun m₁ m₂ ↦ Prod.mk m₁ m₂) (Prod.instWellFoundedRelation (sizeOfWFRel) (sizeOfWFRel))).rel y (PSigma.mk m₁ m₂) → Ordering) → Ordering) m₁ m₂ (fun _ x ↦ Ordering.eq) (fun p m x ↦ Ordering.gt) (fun p m x ↦ Ordering.lt) (fun pw₁ m₁ pw₂ m₂ x ↦ cond (BEq.beq (Lean.Grind.CommRing.Power.x pw₁) (Lean.Grind.CommRing.Power.x pw₂)) (Ordering.then (x (PSigma.mk m₁ m₂) (Lean.Grind.CommRing.Mon.revlexWF._unary._proof_2 pw₁ m₁ pw₂ m₂)) (Lean.Grind.CommRing.powerRevlex (Lean.Grind.CommRing.Power.k pw₁) (Lean.Grind.CommRing.Power.k pw₂))) (cond (Nat.blt (Lean.Grind.CommRing.Power.x pw₁) (Lean.Grind.CommRing.Power.x pw₂)) (Ordering.then (x (PSigma.mk m₁ (Lean.Grind.CommRing.Mon.mult pw₂ m₂)) (Lean.Grind.CommRing.Mon.revlexWF._unary._proof_3 pw₁ m₁ pw₂ m₂)) Ordering.lt) (Ordering.then (x (PSigma.mk (Lean.Grind.CommRing.Mon.mult pw₁ m₁) m₂) (Lean.Grind.CommRing.Mon.revlexWF._unary._proof_4 pw₁ m₁ pw₂ m₂)) Ordering.gt))) a) a) _x) (Eq.mpr (id (congrFun' (congrArg (Eq) (Eq.trans (_private.Init.Grind.Ring.CommSolver.0.PSigma.casesOn._arg_pusher (PSigma fun m₁ ↦ Lean.Grind.CommRing.Mon) (fun _x ↦ Ordering) Lean.Grind.CommRing.Mon.revlexWF._unary (fun _x y ↦ (invImage (fun x ↦ PSigma.casesOn x fun m₁ m₂ ↦ Prod.mk m₁ m₂) (Prod.instWellFoundedRelation (sizeOfWFRel) (sizeOfWFRel))).rel y _x) _x fun m₁ m₂ a ↦ Lean.Grind.CommRing.Mon.revlexWF.match_1.{1} (fun m₁ m₂ ↦ ((y : PSigma fun m₁ ↦ Lean.Grind.CommRing.Mon) → (invImage (fun x ↦ PSigma.casesOn x fun m₁ m₂ ↦ Prod.mk m₁ m₂) (Prod.instWellFoundedRelation (sizeOfWFRel) (sizeOfWFRel))).rel y (PSigma.mk m₁ m₂) → Ordering) → Ordering) m₁ m₂ (fun _ x ↦ Ordering.eq) (fun p m x ↦ Ordering.gt) (fun p m x ↦ Ordering.lt) (fun pw₁ m₁ pw₂ m₂ x ↦ cond (BEq.beq (Lean.Grind.CommRing.Power.x pw₁) (Lean.Grind.CommRing.Power.x pw₂)) (Ordering.then (x (PSigma.mk m₁ m₂) (Lean.Grind.CommRing.Mon.revlexWF._unary._proof_2 pw₁ m₁ pw₂ m₂)) (Lean.Grind.CommRing.powerRevlex (Lean.Grind.CommRing.Power.k pw₁) (Lean.Grind.CommRing.Power.k pw₂))) (cond (Nat.blt (Lean.Grind.CommRing.Power.x pw₁) (Lean.Grind.CommRing.Power.x pw₂)) (Ordering.then (x (PSigma.mk m₁ (Lean.Grind.CommRing.Mon.mult pw₂ m₂)) (Lean.Grind.CommRing.Mon.revlexWF._unary._proof_3 pw₁ m₁ pw₂ m₂)) Ordering.lt) (Ordering.then (x (PSigma.mk (Lean.Grind.CommRing.Mon.mult pw₁ m₁) m₂) (Lean.Grind.CommRing.Mon.revlexWF._unary._proof_4 pw₁ m₁ pw₂ m₂)) Ordering.gt))) a) (congrFun' (congrArg (PSigma.rec) (funext fun fst ↦ funext fun snd ↦ _private.Init.Grind.Ring.CommSolver.0.Lean.Grind.CommRing.Mon.revlexWF.match_1._arg_pusher.{1, 1, 1} (fun m₁ x ↦ Ordering) (PSigma fun m₁ ↦ Lean.Grind.CommRing.Mon) (fun _x ↦ Ordering) Lean.Grind.CommRing.Mon.revlexWF._unary (fun m₁ m₂ y ↦ (invImage (fun x ↦ PSigma.casesOn x fun m₁ m₂ ↦ Prod.mk m₁ m₂) (Prod.instWellFoundedRelation (sizeOfWFRel) (sizeOfWFRel))).rel y (PSigma.mk m₁ m₂)) fst snd (fun _ x ↦ Ordering.eq) (fun p m x ↦ Ordering.gt) (fun p m x ↦ Ordering.lt) fun pw₁ m₁ pw₂ m₂ x ↦ cond (BEq.beq (Lean.Grind.CommRing.Power.x pw₁) (Lean.Grind.CommRing.Power.x pw₂)) (Ordering.then (x (PSigma.mk m₁ m₂) (Lean.Grind.CommRing.Mon.revlexWF._unary._proof_2 pw₁ m₁ pw₂ m₂)) (Lean.Grind.CommRing.powerRevlex (Lean.Grind.CommRing.Power.k pw₁) (Lean.Grind.CommRing.Power.k pw₂))) (cond (Nat.blt (Lean.Grind.CommRing.Power.x pw₁) (Lean.Grind.CommRing.Power.x pw₂)) (Ordering.then (x (PSigma.mk m₁ (Lean.Grind.CommRing.Mon.mult pw₂ m₂)) (Lean.Grind.CommRing.Mon.revlexWF._unary._proof_3 pw₁ m₁ pw₂ m₂)) Ordering.lt) (Ordering.then (x (PSigma.mk (Lean.Grind.CommRing.Mon.mult pw₁ m₁) m₂) (Lean.Grind.CommRing.Mon.revlexWF._unary._proof_4 pw₁ m₁ pw₂ m₂)) Ordering.gt)))) _x))) (PSigma.rec (fun m₁ m₂ ↦ Lean.Grind.CommRing.Mon.revlexWF.match_1.{1} (fun m₁ x ↦ Ordering) m₁ m₂ (fun _ ↦ Ordering.eq) (fun p m ↦ Ordering.gt) (fun p m ↦ Ordering.lt) fun pw₁ m₁ pw₂ m₂ ↦ cond (BEq.beq (Lean.Grind.CommRing.Power.x pw₁) (Lean.Grind.CommRing.Power.x pw₂)) (Ordering.then (Lean.Grind.CommRing.Mon.revlexWF._unary (PSigma.mk m₁ m₂)) (Lean.Grind.CommRing.powerRevlex (Lean.Grind.CommRing.Power.k pw₁) (Lean.Grind.CommRing.Power.k pw₂))) (cond (Nat.blt (Lean.Grind.CommRing.Power.x pw₁) (Lean.Grind.CommRing.Power.x pw₂)) (Ordering.then (Lean.Grind.CommRing.Mon.revlexWF._unary (PSigma.mk m₁ (Lean.Grind.CommRing.Mon.mult pw₂ m₂))) Ordering.lt) (Ordering.then (Lean.Grind.CommRing.Mon.revlexWF._unary (PSigma.mk (Lean.Grind.CommRing.Mon.mult pw₁ m₁) m₂)) Ordering.gt))) _x))) (Eq.refl (PSigma.rec (fun m₁ m₂ ↦ Lean.Grind.CommRing.Mon.revlexWF.match_1.{1} (fun m₁ x ↦ Ordering) m₁ m₂ (fun _ ↦ Ordering.eq) (fun p m ↦ Ordering.gt) (fun p m ↦ Ordering.lt) fun pw₁ m₁ pw₂ m₂ ↦ cond (BEq.beq (Lean.Grind.CommRing.Power.x pw₁) (Lean.Grind.CommRing.Power.x pw₂)) (Ordering.then (Lean.Grind.CommRing.Mon.revlexWF._unary (PSigma.mk m₁ m₂)) (Lean.Grind.CommRing.powerRevlex (Lean.Grind.CommRing.Power.k pw₁) (Lean.Grind.CommRing.Power.k pw₂))) (cond (Nat.blt (Lean.Grind.CommRing.Power.x pw₁) (Lean.Grind.CommRing.Power.x pw₂)) (Ordering.then (Lean.Grind.CommRing.Mon.revlexWF._unary (PSigma.mk m₁ (Lean.Grind.CommRing.Mon.mult pw₂ m₂))) Ordering.lt) (Ordering.then (Lean.Grind.CommRing.Mon.revlexWF._unary (PSigma.mk (Lean.Grind.CommRing.Mon.mult pw₁ m₁) m₂)) Ordering.gt))) _x))))
has type
  (p : Lean.Grind.CommRing.Power) → (m : Lean.Grind.CommRing.Mon) → (fun x ↦ (fun m₁ m₂ ↦ ((y : PSigma fun m₁ ↦ Lean.Grind.CommRing.Mon) → (invImage (fun x ↦ PSigma.casesOn x fun m₁ m₂ ↦ Prod.mk m₁ m₂) (Prod.instWellFoundedRelation (sizeOfWFRel) (sizeOfWFRel))).rel y (PSigma.mk m₁ m₂) → Ordering) → Ordering) (Lean.Grind.CommRing.Mon.mult p m) x) m → ((y : PSigma fun m₁ ↦ Lean.Grind.CommRing.Mon) → (invImage (fun x ↦ PSigma.casesOn x fun m₁ m₂ ↦ Prod.mk m₁ m₂) (Prod.instWellFoundedRelation (sizeOfWFRel) (sizeOfWFRel))).rel y (PSigma.mk (Lean.Grind.CommRing.Mon.mult p m) (Lean.Grind.CommRing.Mon.mult p m)) → Ordering) → Ordering
but is expected to have type
  (p : Lean.Grind.CommRing.Power) → (m : Lean.Grind.CommRing.Mon) → (fun x ↦ (fun m₁ m₂ ↦ ((y : PSigma fun m₁ ↦ Lean.Grind.CommRing.Mon) → (invImage (fun x ↦ PSigma.casesOn x fun m₁ m₂ ↦ Prod.mk m₁ m₂) (Prod.instWellFoundedRelation (sizeOfWFRel) (sizeOfWFRel))).rel y (PSigma.mk m₁ m₂) → Ordering) → Ordering) (Lean.Grind.CommRing.Mon.mult p m) x) m → (fun x ↦ (fun m₁ m₂ ↦ ((y : PSigma fun m₁ ↦ Lean.Grind.CommRing.Mon) → (invImage (fun x ↦ PSigma.casesOn x fun m₁ m₂ ↦ Prod.mk m₁ m₂) (Prod.instWellFoundedRelation (sizeOfWFRel) (sizeOfWFRel))).rel y (PSigma.mk m₁ m₂) → Ordering) → Ordering) (Lean.Grind.CommRing.Mon.mult p m) x) (Lean.Grind.CommRing.Mon.mult p m)
checked in 3.342442s

Test "perf/shift-cascade"

Expected: 👍 accept · Size: 256.3 KB · Lines: 5.1 k · lean4export: 3.1.0 · Lean: 4.29.0 · 📄 Declaration · 🔗 Source

Stress test for cascading substitution overhead in kernel let processing.

N nested let bindings inside a lambda, where each value references the outer lambda parameter and the previous binding:

fun (a : Nat → Nat) => let f₁ := fun x => a x let f₂ := fun x => a (f₁ x) ... let fₙ := fun x => a (fₙ₋₁ x) fₙ 0

The kernel processes each let by substituting the value into the body. Each value has a free bvar (references a), so substitution under inner binders creates shifted copies. In a de Bruijn kernel with deferred shifts, these Shift(val, offset) wrappers accumulate: step k must traverse through O(k) wrappers from previous steps, giving O(N²) total work.

A locally-nameless kernel substitutes fvars that need no shifting, giving O(N) total.

N=1000 in the Lean source. Increase to stress further.

Test result: 👍 accepted · exit code 0 · wall time: 15 ms · instructions: 48.5 M · max rss memory: 18.5 MB

stderr:
checked in 0.008456s

Test "proj-of-prop"

Expected: ✋ reject · Size: 3.9 KB · Lines: 56 · lean4export: 3.1.0 · Lean: 4.29.0 · 📄 Declaration · 🔗 Source

A proof of False via a projection from a Prop-typed structure whose constructor was applied to an ill-typed argument. The exported term is

badFalse : False := (Wrapper.mk True.intro).p

where Wrapper : Prop has a single field p : False, so Wrapper.mk expects a proof of False but is given True.intro : True.

A sound checker must reject this. A checker that types a projection by inferring (rather than checking) its structure argument — i.e. that trusts the structure to be well-typed instead of verifying the constructor's argument types against its binders — will accept it, because Wrapper.mk True.intro still formally inhabits Wrapper at the structural level, and the p projection is then read back out at the declared field type False.

Test result: ✋ rejected · exit code 1 · wall time: 6 ms · instructions: 11.8 M · max rss memory: 7.2 MB

stderr:
theorem badFalse : False := (Wrapper.mk True.intro).p
                                        ^^^^^^^^^^
                                        has type
                                          True
                                        but is expected to have type
                                          False
checked in 0.000572s

Test "std"

Expected: 👍 accept · Size: 526.1 MB · Lines: 10.0 M · lean4export: 3.1.0 · Lean: 4.29.0 · 📄 Declaration · 🔗 Source

The complete Std library export from Lean 4.

This test contains the standard library extensions beyond core Lean 4, including:

  • Enhanced data structures (HashMap, RBTree, etc.)
  • Additional mathematical operations
  • Extended list and array operations
  • Utility functions and theorems

This represents a medium-sized test case, larger than core modules but smaller than Mathlib, making it useful for performance testing.

Test result: ✋ rejected · exit code 1 · wall time: 2.3 m · instructions: 927.2 G · max rss memory: 14.1 GB

stderr:
theorem Std.DTreeMap.Internal.Impl.balanced_glue.{u, v} : ∀ {α : Type u}, ∀ {β : α → Type v}, ∀ {l : Std.DTreeMap.Internal.Impl.{u, v} α β}, ∀ {r : Std.DTreeMap.Internal.Impl.{u, v} α β}, ∀ {hl : Std.DTreeMap.Internal.Impl.Balanced l}, ∀ {hr : Std.DTreeMap.Internal.Impl.Balanced r}, ∀ {hlr : Std.DTreeMap.Internal.Impl.BalancedAtRoot (Std.DTreeMap.Internal.Impl.size l) (Std.DTreeMap.Internal.Impl.size r)}, Std.DTreeMap.Internal.Impl.Balanced (Std.DTreeMap.Internal.Impl.glue l r hl hr hlr) := fun {α β l r hl hr hlr} ↦ Eq.mpr (id (congrArg (Std.DTreeMap.Internal.Impl.Balanced) (congrArg (Std.DTreeMap.Internal.Impl.minView.match_3 r (fun l hl hlr ↦ Std.DTreeMap.Internal.Impl.{u, v} α β) l hl hlr fun hl hlr ↦ r) (funext fun sz ↦ funext fun k ↦ funext fun v ↦ funext fun l' ↦ funext fun r' ↦ funext fun hl ↦ funext fun hlr ↦ congrArg (Std.DTreeMap.Internal.Impl.glue.match_1 sz k v l' r' (fun r hr hlr ↦ Std.DTreeMap.Internal.Impl.{u, v} α β) r hr hlr fun hr hlr ↦ l) (funext fun sz' ↦ funext fun k' ↦ funext fun v' ↦ funext fun l'' ↦ funext fun r'' ↦ funext fun hr ↦ funext fun hlr ↦ ite_congr (Eq.refl (LT.lt sz sz')) (fun a ↦ Eq.refl (Std.DTreeMap.Internal.Impl.balanceLErase (Std.DTreeMap.Internal.Impl.View.k (Std.DTreeMap.Internal.Impl.minView k' v' l'' r'' (Std.DTreeMap.Internal.Impl.glue._proof_4 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_6 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_8 sz k v l' r' hl sz' k' v' l'' r'' hr))) (Std.DTreeMap.Internal.Impl.View.v (Std.DTreeMap.Internal.Impl.minView k' v' l'' r'' (Std.DTreeMap.Internal.Impl.glue._proof_4 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_6 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_8 sz k v l' r' hl sz' k' v' l'' r'' hr))) (Std.DTreeMap.Internal.Impl.inner sz k v l' r') (Std.DTreeMap.Internal.Impl.Tree.impl (Std.DTreeMap.Internal.Impl.minView k' v' l'' r'' (Std.DTreeMap.Internal.Impl.glue._proof_4 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_6 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_8 sz k v l' r' hl sz' k' v' l'' r'' hr)).tree) hl (Std.DTreeMap.Internal.Impl.glue._proof_10 sz k v l' r' hl sz' k' v' l'' r'' hr (Std.DTreeMap.Internal.Impl.Tree.impl (Std.DTreeMap.Internal.Impl.minView k' v' l'' r'' (Std.DTreeMap.Internal.Impl.glue._proof_4 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_6 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_8 sz k v l' r' hl sz' k' v' l'' r'' hr)).tree) (Std.DTreeMap.Internal.Impl.Tree.balanced_impl (Std.DTreeMap.Internal.Impl.minView k' v' l'' r'' (Std.DTreeMap.Internal.Impl.glue._proof_4 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_6 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_8 sz k v l' r' hl sz' k' v' l'' r'' hr)).tree)) (Std.DTreeMap.Internal.Impl.glue._proof_12 sz k v l' r' sz' k' v' l'' r'' hr hlr (Std.DTreeMap.Internal.Impl.Tree.impl (Std.DTreeMap.Internal.Impl.minView k' v' l'' r'' (Std.DTreeMap.Internal.Impl.glue._proof_4 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_6 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_8 sz k v l' r' hl sz' k' v' l'' r'' hr)).tree) (Std.DTreeMap.Internal.Impl.Tree.size_impl (Std.DTreeMap.Internal.Impl.minView k' v' l'' r'' (Std.DTreeMap.Internal.Impl.glue._proof_4 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_6 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_8 sz k v l' r' hl sz' k' v' l'' r'' hr)).tree)))) fun a ↦ Eq.refl (Std.DTreeMap.Internal.Impl.balanceRErase (Std.DTreeMap.Internal.Impl.View.k (Std.DTreeMap.Internal.Impl.maxView k v l' r' (Std.DTreeMap.Internal.Impl.glue._proof_14 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_16 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_18 sz k v l' r' hl sz' k' v' l'' r'' hr))) (Std.DTreeMap.Internal.Impl.View.v (Std.DTreeMap.Internal.Impl.maxView k v l' r' (Std.DTreeMap.Internal.Impl.glue._proof_14 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_16 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_18 sz k v l' r' hl sz' k' v' l'' r'' hr))) (Std.DTreeMap.Internal.Impl.Tree.impl (Std.DTreeMap.Internal.Impl.maxView k v l' r' (Std.DTreeMap.Internal.Impl.glue._proof_14 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_16 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_18 sz k v l' r' hl sz' k' v' l'' r'' hr)).tree) (Std.DTreeMap.Internal.Impl.inner sz' k' v' l'' r'') (Std.DTreeMap.Internal.Impl.glue._proof_10 sz k v l' r' hl sz' k' v' l'' r'' hr (Std.DTreeMap.Internal.Impl.Tree.impl (Std.DTreeMap.Internal.Impl.maxView k v l' r' (Std.DTreeMap.Internal.Impl.glue._proof_14 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_16 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_18 sz k v l' r' hl sz' k' v' l'' r'' hr)).tree) (Std.DTreeMap.Internal.Impl.Tree.balanced_impl (Std.DTreeMap.Internal.Impl.maxView k v l' r' (Std.DTreeMap.Internal.Impl.glue._proof_14 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_16 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_18 sz k v l' r' hl sz' k' v' l'' r'' hr)).tree)) hr (Std.DTreeMap.Internal.Impl.glue._proof_20 sz k v l' r' hl sz' k' v' l'' r'' hlr (Std.DTreeMap.Internal.Impl.Tree.impl (Std.DTreeMap.Internal.Impl.maxView k v l' r' (Std.DTreeMap.Internal.Impl.glue._proof_14 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_16 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_18 sz k v l' r' hl sz' k' v' l'' r'' hr)).tree) (Std.DTreeMap.Internal.Impl.Tree.size_impl (Std.DTreeMap.Internal.Impl.maxView k v l' r' (Std.DTreeMap.Internal.Impl.glue._proof_14 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_16 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_18 sz k v l' r' hl sz' k' v' l'' r'' hr)).tree)))))))) (_private.Std.Data.DTreeMap.Internal.Operations.0.Std.DTreeMap.Internal.Impl.minView.match_3.splitter r (fun l hl hlr ↦ Eq l l → HEq hl hl → HEq hlr hlr → Std.DTreeMap.Internal.Impl.Balanced (Std.DTreeMap.Internal.Impl.minView.match_3 r (fun l hl hlr ↦ Std.DTreeMap.Internal.Impl.{u, v} α β) l hl hlr (fun hl hlr ↦ r) fun sz k v l' r' hl hlr ↦ Std.DTreeMap.Internal.Impl.glue.match_1 sz k v l' r' (fun r hr hlr ↦ Std.DTreeMap.Internal.Impl.{u, v} α β) r hr hlr (fun hr hlr ↦ l) fun sz' k' v' l'' r'' hr hlr ↦ ite (LT.lt sz sz') (Std.DTreeMap.Internal.Impl.balanceLErase (Std.DTreeMap.Internal.Impl.View.k (Std.DTreeMap.Internal.Impl.minView k' v' l'' r'' (Std.DTreeMap.Internal.Impl.glue._proof_4 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_6 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_8 sz k v l' r' hl sz' k' v' l'' r'' hr))) (Std.DTreeMap.Internal.Impl.View.v (Std.DTreeMap.Internal.Impl.minView k' v' l'' r'' (Std.DTreeMap.Internal.Impl.glue._proof_4 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_6 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_8 sz k v l' r' hl sz' k' v' l'' r'' hr))) (Std.DTreeMap.Internal.Impl.inner sz k v l' r') (Std.DTreeMap.Internal.Impl.Tree.impl (Std.DTreeMap.Internal.Impl.minView k' v' l'' r'' (Std.DTreeMap.Internal.Impl.glue._proof_4 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_6 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_8 sz k v l' r' hl sz' k' v' l'' r'' hr)).tree) hl (Std.DTreeMap.Internal.Impl.glue._proof_10 sz k v l' r' hl sz' k' v' l'' r'' hr (Std.DTreeMap.Internal.Impl.Tree.impl (Std.DTreeMap.Internal.Impl.minView k' v' l'' r'' (Std.DTreeMap.Internal.Impl.glue._proof_4 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_6 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_8 sz k v l' r' hl sz' k' v' l'' r'' hr)).tree) (Std.DTreeMap.Internal.Impl.Tree.balanced_impl (Std.DTreeMap.Internal.Impl.minView k' v' l'' r'' (Std.DTreeMap.Internal.Impl.glue._proof_4 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_6 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_8 sz k v l' r' hl sz' k' v' l'' r'' hr)).tree)) (Std.DTreeMap.Internal.Impl.glue._proof_12 sz k v l' r' sz' k' v' l'' r'' hr hlr (Std.DTreeMap.Internal.Impl.Tree.impl (Std.DTreeMap.Internal.Impl.minView k' v' l'' r'' (Std.DTreeMap.Internal.Impl.glue._proof_4 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_6 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_8 sz k v l' r' hl sz' k' v' l'' r'' hr)).tree) (Std.DTreeMap.Internal.Impl.Tree.size_impl (Std.DTreeMap.Internal.Impl.minView k' v' l'' r'' (Std.DTreeMap.Internal.Impl.glue._proof_4 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_6 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_8 sz k v l' r' hl sz' k' v' l'' r'' hr)).tree))) (Std.DTreeMap.Internal.Impl.balanceRErase (Std.DTreeMap.Internal.Impl.View.k (Std.DTreeMap.Internal.Impl.maxView k v l' r' (Std.DTreeMap.Internal.Impl.glue._proof_14 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_16 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_18 sz k v l' r' hl sz' k' v' l'' r'' hr))) (Std.DTreeMap.Internal.Impl.View.v (Std.DTreeMap.Internal.Impl.maxView k v l' r' (Std.DTreeMap.Internal.Impl.glue._proof_14 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_16 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_18 sz k v l' r' hl sz' k' v' l'' r'' hr))) (Std.DTreeMap.Internal.Impl.Tree.impl (Std.DTreeMap.Internal.Impl.maxView k v l' r' (Std.DTreeMap.Internal.Impl.glue._proof_14 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_16 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_18 sz k v l' r' hl sz' k' v' l'' r'' hr)).tree) (Std.DTreeMap.Internal.Impl.inner sz' k' v' l'' r'') (Std.DTreeMap.Internal.Impl.glue._proof_10 sz k v l' r' hl sz' k' v' l'' r'' hr (Std.DTreeMap.Internal.Impl.Tree.impl (Std.DTreeMap.Internal.Impl.maxView k v l' r' (Std.DTreeMap.Internal.Impl.glue._proof_14 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_16 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_18 sz k v l' r' hl sz' k' v' l'' r'' hr)).tree) (Std.DTreeMap.Internal.Impl.Tree.balanced_impl (Std.DTreeMap.Internal.Impl.maxView k v l' r' (Std.DTreeMap.Internal.Impl.glue._proof_14 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_16 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_18 sz k v l' r' hl sz' k' v' l'' r'' hr)).tree)) hr (Std.DTreeMap.Internal.Impl.glue._proof_20 sz k v l' r' hl sz' k' v' l'' r'' hlr (Std.DTreeMap.Internal.Impl.Tree.impl (Std.DTreeMap.Internal.Impl.maxView k v l' r' (Std.DTreeMap.Internal.Impl.glue._proof_14 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_16 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_18 sz k v l' r' hl sz' k' v' l'' r'' hr)).tree) (Std.DTreeMap.Internal.Impl.Tree.size_impl (Std.DTreeMap.Internal.Impl.maxView k v l' r' (Std.DTreeMap.Internal.Impl.glue._proof_14 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_16 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_18 sz k v l' r' hl sz' k' v' l'' r'' hr)).tree))))) l hl hlr (fun hl hlr h ↦ Eq.ndrec (fun {hl hlr} h ↦ Eq.ndrec (fun h ↦ Eq.ndrec (id hr) (Eq.symm (eq_of_heq h))) (Eq.symm (eq_of_heq h))) (Eq.symm h) hl hlr) (fun size k' v' l' r' hl hlr h ↦ Eq.ndrec (fun {hl hlr} h ↦ Eq.ndrec (fun h ↦ Eq.ndrec (id (_private.Std.Data.DTreeMap.Internal.Operations.0.Std.DTreeMap.Internal.Impl.glue.match_1.splitter size k' v' l' r' (fun r hr hlr ↦ Eq r r → HEq hr hr → HEq hlr hlr → Std.DTreeMap.Internal.Impl.Balanced (Std.DTreeMap.Internal.Impl.glue.match_1 size k' v' l' r' (fun r hr hlr ↦ Std.DTreeMap.Internal.Impl.{u, v} α β) r hr hlr (fun hr hlr ↦ Std.DTreeMap.Internal.Impl.inner size k' v' l' r') fun sz' k' v' l'' r'' hr hlr ↦ ite (LT.lt size sz') (Std.DTreeMap.Internal.Impl.balanceLErase (Std.DTreeMap.Internal.Impl.View.k (Std.DTreeMap.Internal.Impl.minView k' v' l'' r'' (Std.DTreeMap.Internal.Impl.glue._proof_4 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_6 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_8 size k' v' l' r' hl sz' k' v' l'' r'' hr))) (Std.DTreeMap.Internal.Impl.View.v (Std.DTreeMap.Internal.Impl.minView k' v' l'' r'' (Std.DTreeMap.Internal.Impl.glue._proof_4 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_6 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_8 size k' v' l' r' hl sz' k' v' l'' r'' hr))) (Std.DTreeMap.Internal.Impl.inner size k' v' l' r') (Std.DTreeMap.Internal.Impl.Tree.impl (Std.DTreeMap.Internal.Impl.minView k' v' l'' r'' (Std.DTreeMap.Internal.Impl.glue._proof_4 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_6 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_8 size k' v' l' r' hl sz' k' v' l'' r'' hr)).tree) hl (Std.DTreeMap.Internal.Impl.glue._proof_10 size k' v' l' r' hl sz' k' v' l'' r'' hr (Std.DTreeMap.Internal.Impl.Tree.impl (Std.DTreeMap.Internal.Impl.minView k' v' l'' r'' (Std.DTreeMap.Internal.Impl.glue._proof_4 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_6 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_8 size k' v' l' r' hl sz' k' v' l'' r'' hr)).tree) (Std.DTreeMap.Internal.Impl.Tree.balanced_impl (Std.DTreeMap.Internal.Impl.minView k' v' l'' r'' (Std.DTreeMap.Internal.Impl.glue._proof_4 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_6 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_8 size k' v' l' r' hl sz' k' v' l'' r'' hr)).tree)) (Std.DTreeMap.Internal.Impl.glue._proof_12 size k' v' l' r' sz' k' v' l'' r'' hr hlr (Std.DTreeMap.Internal.Impl.Tree.impl (Std.DTreeMap.Internal.Impl.minView k' v' l'' r'' (Std.DTreeMap.Internal.Impl.glue._proof_4 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_6 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_8 size k' v' l' r' hl sz' k' v' l'' r'' hr)).tree) (Std.DTreeMap.Internal.Impl.Tree.size_impl (Std.DTreeMap.Internal.Impl.minView k' v' l'' r'' (Std.DTreeMap.Internal.Impl.glue._proof_4 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_6 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_8 size k' v' l' r' hl sz' k' v' l'' r'' hr)).tree))) (Std.DTreeMap.Internal.Impl.balanceRErase (Std.DTreeMap.Internal.Impl.View.k (Std.DTreeMap.Internal.Impl.maxView k' v' l' r' (Std.DTreeMap.Internal.Impl.glue._proof_14 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_16 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_18 size k' v' l' r' hl sz' k' v' l'' r'' hr))) (Std.DTreeMap.Internal.Impl.View.v (Std.DTreeMap.Internal.Impl.maxView k' v' l' r' (Std.DTreeMap.Internal.Impl.glue._proof_14 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_16 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_18 size k' v' l' r' hl sz' k' v' l'' r'' hr))) (Std.DTreeMap.Internal.Impl.Tree.impl (Std.DTreeMap.Internal.Impl.maxView k' v' l' r' (Std.DTreeMap.Internal.Impl.glue._proof_14 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_16 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_18 size k' v' l' r' hl sz' k' v' l'' r'' hr)).tree) (Std.DTreeMap.Internal.Impl.inner sz' k' v' l'' r'') (Std.DTreeMap.Internal.Impl.glue._proof_10 size k' v' l' r' hl sz' k' v' l'' r'' hr (Std.DTreeMap.Internal.Impl.Tree.impl (Std.DTreeMap.Internal.Impl.maxView k' v' l' r' (Std.DTreeMap.Internal.Impl.glue._proof_14 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_16 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_18 size k' v' l' r' hl sz' k' v' l'' r'' hr)).tree) (Std.DTreeMap.Internal.Impl.Tree.balanced_impl (Std.DTreeMap.Internal.Impl.maxView k' v' l' r' (Std.DTreeMap.Internal.Impl.glue._proof_14 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_16 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_18 size k' v' l' r' hl sz' k' v' l'' r'' hr)).tree)) hr (Std.DTreeMap.Internal.Impl.glue._proof_20 size k' v' l' r' hl sz' k' v' l'' r'' hlr (Std.DTreeMap.Internal.Impl.Tree.impl (Std.DTreeMap.Internal.Impl.maxView k' v' l' r' (Std.DTreeMap.Internal.Impl.glue._proof_14 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_16 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_18 size k' v' l' r' hl sz' k' v' l'' r'' hr)).tree) (Std.DTreeMap.Internal.Impl.Tree.size_impl (Std.DTreeMap.Internal.Impl.maxView k' v' l' r' (Std.DTreeMap.Internal.Impl.glue._proof_14 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_16 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_18 size k' v' l' r' hl sz' k' v' l'' r'' hr)).tree))))) r hr hlr (fun hr hlr h ↦ Eq.ndrec (fun {hr} hlr hlr h ↦ Eq.ndrec (fun h ↦ Eq.ndrec (id (Eq.mpr (id (Std.DTreeMap.Internal.Impl.balanced_inner_iff._simp_1)) (And.casesOn (Eq.mp (Std.DTreeMap.Internal.Impl.balanced_inner_iff._simp_1) hl) (fun left right h ↦ And.casesOn right (fun left right h ↦ And.casesOn right (fun left right h ↦ And.intro left (And.intro left (And.intro left right))) (Eq.refl right)) (Eq.refl right)) (Eq.refl (Eq.mp (Std.DTreeMap.Internal.Impl.balanced_inner_iff._simp_1) hl))))) (Eq.symm (eq_of_heq h))) (Eq.symm (eq_of_heq h))) (Eq.symm h) hr hlr hlr) (fun sz' k' v' l'' r'' hr hlr h ↦ Eq.ndrec (fun {hr} hlr hlr h ↦ Eq.ndrec (fun h ↦ Eq.ndrec (id (Decidable.casesOn (Nat.decLt size sz') (fun h ↦ Eq.mpr (id (congrArg (Std.DTreeMap.Internal.Impl.Balanced) (if_neg h))) (of_eq_true (Std.DTreeMap.Internal.Impl.balanced_balanceRErase._simp_1 (Std.DTreeMap.Internal.Impl.glue._proof_10 size k' v' l' r' hl sz' k' v' l'' r'' hr (Std.DTreeMap.Internal.Impl.Tree.impl (Std.DTreeMap.Internal.Impl.maxView k' v' l' r' (Std.DTreeMap.Internal.Impl.glue._proof_14 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_16 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_18 size k' v' l' r' hl sz' k' v' l'' r'' hr)).tree) (Std.DTreeMap.Internal.Impl.Tree.balanced_impl (Std.DTreeMap.Internal.Impl.maxView k' v' l' r' (Std.DTreeMap.Internal.Impl.glue._proof_14 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_16 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_18 size k' v' l' r' hl sz' k' v' l'' r'' hr)).tree)) hr (Std.DTreeMap.Internal.Impl.glue._proof_20 size k' v' l' r' hl sz' k' v' l'' r'' hlr (Std.DTreeMap.Internal.Impl.Tree.impl (Std.DTreeMap.Internal.Impl.maxView k' v' l' r' (Std.DTreeMap.Internal.Impl.glue._proof_14 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_16 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_18 size k' v' l' r' hl sz' k' v' l'' r'' hr)).tree) (Std.DTreeMap.Internal.Impl.Tree.size_impl (Std.DTreeMap.Internal.Impl.maxView k' v' l' r' (Std.DTreeMap.Internal.Impl.glue._proof_14 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_16 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_18 size k' v' l' r' hl sz' k' v' l'' r'' hr)).tree))))) fun h ↦ Eq.mpr (id (congrArg (Std.DTreeMap.Internal.Impl.Balanced) (if_pos h))) (of_eq_true (Std.DTreeMap.Internal.Impl.balanced_balanceLErase._simp_1 hl (Std.DTreeMap.Internal.Impl.glue._proof_10 size k' v' l' r' hl sz' k' v' l'' r'' hr (Std.DTreeMap.Internal.Impl.Tree.impl (Std.DTreeMap.Internal.Impl.minView k' v' l'' r'' (Std.DTreeMap.Internal.Impl.glue._proof_4 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_6 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_8 size k' v' l' r' hl sz' k' v' l'' r'' hr)).tree) (Std.DTreeMap.Internal.Impl.Tree.balanced_impl (Std.DTreeMap.Internal.Impl.minView k' v' l'' r'' (Std.DTreeMap.Internal.Impl.glue._proof_4 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_6 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_8 size k' v' l' r' hl sz' k' v' l'' r'' hr)).tree)) (Std.DTreeMap.Internal.Impl.glue._proof_12 size k' v' l' r' sz' k' v' l'' r'' hr hlr (Std.DTreeMap.Internal.Impl.Tree.impl (Std.DTreeMap.Internal.Impl.minView k' v' l'' r'' (Std.DTreeMap.Internal.Impl.glue._proof_4 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_6 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_8 size k' v' l' r' hl sz' k' v' l'' r'' hr)).tree) (Std.DTreeMap.Internal.Impl.Tree.size_impl (Std.DTreeMap.Internal.Impl.minView k' v' l'' r'' (Std.DTreeMap.Internal.Impl.glue._proof_4 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_6 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_8 size k' v' l' r' hl sz' k' v' l'' r'' hr)).tree)))))) (Eq.symm (eq_of_heq h))) (Eq.symm (eq_of_heq h))) (Eq.symm h) hr hlr hlr) (Eq.refl r) (HEq.refl hr) (HEq.refl hlr))) (Eq.symm (eq_of_heq h))) (Eq.symm (eq_of_heq h))) (Eq.symm h) hl hlr) (Eq.refl l) (HEq.refl hl) (HEq.refl hlr))
has type
  (size : Nat) → (k : α) → (v : β k) → (l : Std.DTreeMap.Internal.Impl.{u, v} α β) → (r : Std.DTreeMap.Internal.Impl.{u, v} α β) → (fun x ↦ (hlb : Std.DTreeMap.Internal.Impl.Balanced (Std.DTreeMap.Internal.Impl.inner sz k v x r')) → (hlr : Std.DTreeMap.Internal.Impl.BalanceLErasePrecond (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner sz k v x r')) (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k v l r))) → (fun ll lr hlb hlr ↦ Std.DTreeMap.Internal.Impl.{u, v} α β) x r' hlb hlr) l → (fun x ↦ (hlb : Std.DTreeMap.Internal.Impl.Balanced (Std.DTreeMap.Internal.Impl.inner sz k v x r')) → (hlr : Std.DTreeMap.Internal.Impl.BalanceLErasePrecond (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner sz k v x r')) (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k v l r))) → (fun ll lr hlb hlr ↦ Std.DTreeMap.Internal.Impl.{u, v} α β) x r' hlb hlr) r → (hlb : Std.DTreeMap.Internal.Impl.Balanced (Std.DTreeMap.Internal.Impl.inner sz k v (Std.DTreeMap.Internal.Impl.inner size k v l r) r')) → (hlr : Std.DTreeMap.Internal.Impl.BalanceLErasePrecond (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner sz k v (Std.DTreeMap.Internal.Impl.inner size k v l r) r')) (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k v l r))) → (fun ll lr hlb hlr ↦ Std.DTreeMap.Internal.Impl.{u, v} α β) (Std.DTreeMap.Internal.Impl.inner size k v l r) r' hlb hlr
but is expected to have type
  (size : Nat) → (k : α) → (v : β k) → (l : Std.DTreeMap.Internal.Impl.{u, v} α β) → (r : Std.DTreeMap.Internal.Impl.{u, v} α β) → (fun x ↦ (hlb : Std.DTreeMap.Internal.Impl.Balanced (Std.DTreeMap.Internal.Impl.inner sz k v x r')) → (hlr : Std.DTreeMap.Internal.Impl.BalanceLErasePrecond (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner sz k v x r')) (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k v l r))) → (fun ll lr hlb hlr ↦ Std.DTreeMap.Internal.Impl.{u, v} α β) x r' hlb hlr) l → (fun x ↦ (hlb : Std.DTreeMap.Internal.Impl.Balanced (Std.DTreeMap.Internal.Impl.inner sz k v x r')) → (hlr : Std.DTreeMap.Internal.Impl.BalanceLErasePrecond (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner sz k v x r')) (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k v l r))) → (fun ll lr hlb hlr ↦ Std.DTreeMap.Internal.Impl.{u, v} α β) x r' hlb hlr) r → (fun x ↦ (hlb : Std.DTreeMap.Internal.Impl.Balanced (Std.DTreeMap.Internal.Impl.inner sz k v x r')) → (hlr : Std.DTreeMap.Internal.Impl.BalanceLErasePrecond (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner sz k v x r')) (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k v l r))) → (fun ll lr hlb hlr ↦ Std.DTreeMap.Internal.Impl.{u, v} α β) x r' hlb hlr) (Std.DTreeMap.Internal.Impl.inner size k v l r)
theorem Std.DTreeMap.Internal.Impl.size_glue.{u, v} : ∀ {α : Type u}, ∀ {β : α → Type v}, ∀ {l : Std.DTreeMap.Internal.Impl.{u, v} α β}, ∀ {r : Std.DTreeMap.Internal.Impl.{u, v} α β}, ∀ {hl : Std.DTreeMap.Internal.Impl.Balanced l}, ∀ {hr : Std.DTreeMap.Internal.Impl.Balanced r}, ∀ {hlr : Std.DTreeMap.Internal.Impl.BalancedAtRoot (Std.DTreeMap.Internal.Impl.size l) (Std.DTreeMap.Internal.Impl.size r)}, Eq (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.glue l r hl hr hlr)) (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size l) (Std.DTreeMap.Internal.Impl.size r)) := fun {α β l r hl hr hlr} ↦ Eq.mpr (id (congrFun' (congrArg (Eq) (congrArg (Std.DTreeMap.Internal.Impl.size) (congrArg (Std.DTreeMap.Internal.Impl.minView.match_3 r (fun l hl hlr ↦ Std.DTreeMap.Internal.Impl.{u, v} α β) l hl hlr fun hl hlr ↦ r) (funext fun sz ↦ funext fun k ↦ funext fun v ↦ funext fun l' ↦ funext fun r' ↦ funext fun hl ↦ funext fun hlr ↦ congrArg (Std.DTreeMap.Internal.Impl.glue.match_1 sz k v l' r' (fun r hr hlr ↦ Std.DTreeMap.Internal.Impl.{u, v} α β) r hr hlr fun hr hlr ↦ l) (funext fun sz' ↦ funext fun k' ↦ funext fun v' ↦ funext fun l'' ↦ funext fun r'' ↦ funext fun hr ↦ funext fun hlr ↦ ite_congr (Eq.refl (LT.lt sz sz')) (fun a ↦ Eq.refl (Std.DTreeMap.Internal.Impl.balanceLErase (Std.DTreeMap.Internal.Impl.View.k (Std.DTreeMap.Internal.Impl.minView k' v' l'' r'' (Std.DTreeMap.Internal.Impl.glue._proof_4 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_6 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_8 sz k v l' r' hl sz' k' v' l'' r'' hr))) (Std.DTreeMap.Internal.Impl.View.v (Std.DTreeMap.Internal.Impl.minView k' v' l'' r'' (Std.DTreeMap.Internal.Impl.glue._proof_4 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_6 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_8 sz k v l' r' hl sz' k' v' l'' r'' hr))) (Std.DTreeMap.Internal.Impl.inner sz k v l' r') (Std.DTreeMap.Internal.Impl.Tree.impl (Std.DTreeMap.Internal.Impl.minView k' v' l'' r'' (Std.DTreeMap.Internal.Impl.glue._proof_4 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_6 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_8 sz k v l' r' hl sz' k' v' l'' r'' hr)).tree) hl (Std.DTreeMap.Internal.Impl.glue._proof_10 sz k v l' r' hl sz' k' v' l'' r'' hr (Std.DTreeMap.Internal.Impl.Tree.impl (Std.DTreeMap.Internal.Impl.minView k' v' l'' r'' (Std.DTreeMap.Internal.Impl.glue._proof_4 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_6 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_8 sz k v l' r' hl sz' k' v' l'' r'' hr)).tree) (Std.DTreeMap.Internal.Impl.Tree.balanced_impl (Std.DTreeMap.Internal.Impl.minView k' v' l'' r'' (Std.DTreeMap.Internal.Impl.glue._proof_4 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_6 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_8 sz k v l' r' hl sz' k' v' l'' r'' hr)).tree)) (Std.DTreeMap.Internal.Impl.glue._proof_12 sz k v l' r' sz' k' v' l'' r'' hr hlr (Std.DTreeMap.Internal.Impl.Tree.impl (Std.DTreeMap.Internal.Impl.minView k' v' l'' r'' (Std.DTreeMap.Internal.Impl.glue._proof_4 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_6 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_8 sz k v l' r' hl sz' k' v' l'' r'' hr)).tree) (Std.DTreeMap.Internal.Impl.Tree.size_impl (Std.DTreeMap.Internal.Impl.minView k' v' l'' r'' (Std.DTreeMap.Internal.Impl.glue._proof_4 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_6 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_8 sz k v l' r' hl sz' k' v' l'' r'' hr)).tree)))) fun a ↦ Eq.refl (Std.DTreeMap.Internal.Impl.balanceRErase (Std.DTreeMap.Internal.Impl.View.k (Std.DTreeMap.Internal.Impl.maxView k v l' r' (Std.DTreeMap.Internal.Impl.glue._proof_14 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_16 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_18 sz k v l' r' hl sz' k' v' l'' r'' hr))) (Std.DTreeMap.Internal.Impl.View.v (Std.DTreeMap.Internal.Impl.maxView k v l' r' (Std.DTreeMap.Internal.Impl.glue._proof_14 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_16 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_18 sz k v l' r' hl sz' k' v' l'' r'' hr))) (Std.DTreeMap.Internal.Impl.Tree.impl (Std.DTreeMap.Internal.Impl.maxView k v l' r' (Std.DTreeMap.Internal.Impl.glue._proof_14 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_16 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_18 sz k v l' r' hl sz' k' v' l'' r'' hr)).tree) (Std.DTreeMap.Internal.Impl.inner sz' k' v' l'' r'') (Std.DTreeMap.Internal.Impl.glue._proof_10 sz k v l' r' hl sz' k' v' l'' r'' hr (Std.DTreeMap.Internal.Impl.Tree.impl (Std.DTreeMap.Internal.Impl.maxView k v l' r' (Std.DTreeMap.Internal.Impl.glue._proof_14 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_16 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_18 sz k v l' r' hl sz' k' v' l'' r'' hr)).tree) (Std.DTreeMap.Internal.Impl.Tree.balanced_impl (Std.DTreeMap.Internal.Impl.maxView k v l' r' (Std.DTreeMap.Internal.Impl.glue._proof_14 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_16 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_18 sz k v l' r' hl sz' k' v' l'' r'' hr)).tree)) hr (Std.DTreeMap.Internal.Impl.glue._proof_20 sz k v l' r' hl sz' k' v' l'' r'' hlr (Std.DTreeMap.Internal.Impl.Tree.impl (Std.DTreeMap.Internal.Impl.maxView k v l' r' (Std.DTreeMap.Internal.Impl.glue._proof_14 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_16 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_18 sz k v l' r' hl sz' k' v' l'' r'' hr)).tree) (Std.DTreeMap.Internal.Impl.Tree.size_impl (Std.DTreeMap.Internal.Impl.maxView k v l' r' (Std.DTreeMap.Internal.Impl.glue._proof_14 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_16 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_18 sz k v l' r' hl sz' k' v' l'' r'' hr)).tree)))))))) (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size l) (Std.DTreeMap.Internal.Impl.size r)))) (_private.Std.Data.DTreeMap.Internal.Operations.0.Std.DTreeMap.Internal.Impl.minView.match_3.splitter r (fun l hl hlr ↦ Eq l l → HEq hl hl → HEq hlr hlr → Eq (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.minView.match_3 r (fun l hl hlr ↦ Std.DTreeMap.Internal.Impl.{u, v} α β) l hl hlr (fun hl hlr ↦ r) fun sz k v l' r' hl hlr ↦ Std.DTreeMap.Internal.Impl.glue.match_1 sz k v l' r' (fun r hr hlr ↦ Std.DTreeMap.Internal.Impl.{u, v} α β) r hr hlr (fun hr hlr ↦ l) fun sz' k' v' l'' r'' hr hlr ↦ ite (LT.lt sz sz') (Std.DTreeMap.Internal.Impl.balanceLErase (Std.DTreeMap.Internal.Impl.View.k (Std.DTreeMap.Internal.Impl.minView k' v' l'' r'' (Std.DTreeMap.Internal.Impl.glue._proof_4 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_6 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_8 sz k v l' r' hl sz' k' v' l'' r'' hr))) (Std.DTreeMap.Internal.Impl.View.v (Std.DTreeMap.Internal.Impl.minView k' v' l'' r'' (Std.DTreeMap.Internal.Impl.glue._proof_4 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_6 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_8 sz k v l' r' hl sz' k' v' l'' r'' hr))) (Std.DTreeMap.Internal.Impl.inner sz k v l' r') (Std.DTreeMap.Internal.Impl.Tree.impl (Std.DTreeMap.Internal.Impl.minView k' v' l'' r'' (Std.DTreeMap.Internal.Impl.glue._proof_4 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_6 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_8 sz k v l' r' hl sz' k' v' l'' r'' hr)).tree) hl (Std.DTreeMap.Internal.Impl.glue._proof_10 sz k v l' r' hl sz' k' v' l'' r'' hr (Std.DTreeMap.Internal.Impl.Tree.impl (Std.DTreeMap.Internal.Impl.minView k' v' l'' r'' (Std.DTreeMap.Internal.Impl.glue._proof_4 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_6 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_8 sz k v l' r' hl sz' k' v' l'' r'' hr)).tree) (Std.DTreeMap.Internal.Impl.Tree.balanced_impl (Std.DTreeMap.Internal.Impl.minView k' v' l'' r'' (Std.DTreeMap.Internal.Impl.glue._proof_4 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_6 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_8 sz k v l' r' hl sz' k' v' l'' r'' hr)).tree)) (Std.DTreeMap.Internal.Impl.glue._proof_12 sz k v l' r' sz' k' v' l'' r'' hr hlr (Std.DTreeMap.Internal.Impl.Tree.impl (Std.DTreeMap.Internal.Impl.minView k' v' l'' r'' (Std.DTreeMap.Internal.Impl.glue._proof_4 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_6 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_8 sz k v l' r' hl sz' k' v' l'' r'' hr)).tree) (Std.DTreeMap.Internal.Impl.Tree.size_impl (Std.DTreeMap.Internal.Impl.minView k' v' l'' r'' (Std.DTreeMap.Internal.Impl.glue._proof_4 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_6 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_8 sz k v l' r' hl sz' k' v' l'' r'' hr)).tree))) (Std.DTreeMap.Internal.Impl.balanceRErase (Std.DTreeMap.Internal.Impl.View.k (Std.DTreeMap.Internal.Impl.maxView k v l' r' (Std.DTreeMap.Internal.Impl.glue._proof_14 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_16 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_18 sz k v l' r' hl sz' k' v' l'' r'' hr))) (Std.DTreeMap.Internal.Impl.View.v (Std.DTreeMap.Internal.Impl.maxView k v l' r' (Std.DTreeMap.Internal.Impl.glue._proof_14 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_16 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_18 sz k v l' r' hl sz' k' v' l'' r'' hr))) (Std.DTreeMap.Internal.Impl.Tree.impl (Std.DTreeMap.Internal.Impl.maxView k v l' r' (Std.DTreeMap.Internal.Impl.glue._proof_14 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_16 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_18 sz k v l' r' hl sz' k' v' l'' r'' hr)).tree) (Std.DTreeMap.Internal.Impl.inner sz' k' v' l'' r'') (Std.DTreeMap.Internal.Impl.glue._proof_10 sz k v l' r' hl sz' k' v' l'' r'' hr (Std.DTreeMap.Internal.Impl.Tree.impl (Std.DTreeMap.Internal.Impl.maxView k v l' r' (Std.DTreeMap.Internal.Impl.glue._proof_14 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_16 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_18 sz k v l' r' hl sz' k' v' l'' r'' hr)).tree) (Std.DTreeMap.Internal.Impl.Tree.balanced_impl (Std.DTreeMap.Internal.Impl.maxView k v l' r' (Std.DTreeMap.Internal.Impl.glue._proof_14 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_16 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_18 sz k v l' r' hl sz' k' v' l'' r'' hr)).tree)) hr (Std.DTreeMap.Internal.Impl.glue._proof_20 sz k v l' r' hl sz' k' v' l'' r'' hlr (Std.DTreeMap.Internal.Impl.Tree.impl (Std.DTreeMap.Internal.Impl.maxView k v l' r' (Std.DTreeMap.Internal.Impl.glue._proof_14 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_16 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_18 sz k v l' r' hl sz' k' v' l'' r'' hr)).tree) (Std.DTreeMap.Internal.Impl.Tree.size_impl (Std.DTreeMap.Internal.Impl.maxView k v l' r' (Std.DTreeMap.Internal.Impl.glue._proof_14 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_16 sz k v l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_18 sz k v l' r' hl sz' k' v' l'' r'' hr)).tree))))) (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size l) (Std.DTreeMap.Internal.Impl.size r))) l hl hlr (fun hl hlr h ↦ Eq.ndrec (fun {hl hlr} h ↦ Eq.ndrec (fun h ↦ Eq.ndrec (id (id (Decidable.byContradiction fun a ↦ _private.Std.Data.DTreeMap.Internal.Operations.0.Std.DTreeMap.Internal.Impl.minView._proof_5 r a))) (Eq.symm (eq_of_heq h))) (Eq.symm (eq_of_heq h))) (Eq.symm h) hl hlr) (fun size k' v' l' r' hl hlr h ↦ Eq.ndrec (fun {hl hlr} h ↦ Eq.ndrec (fun h ↦ Eq.ndrec (id (_private.Std.Data.DTreeMap.Internal.Operations.0.Std.DTreeMap.Internal.Impl.glue.match_1.splitter size k' v' l' r' (fun r hr hlr ↦ Eq r r → HEq hr hr → HEq hlr hlr → Eq (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.glue.match_1 size k' v' l' r' (fun r hr hlr ↦ Std.DTreeMap.Internal.Impl.{u, v} α β) r hr hlr (fun hr hlr ↦ Std.DTreeMap.Internal.Impl.inner size k' v' l' r') fun sz' k' v' l'' r'' hr hlr ↦ ite (LT.lt size sz') (Std.DTreeMap.Internal.Impl.balanceLErase (Std.DTreeMap.Internal.Impl.View.k (Std.DTreeMap.Internal.Impl.minView k' v' l'' r'' (Std.DTreeMap.Internal.Impl.glue._proof_4 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_6 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_8 size k' v' l' r' hl sz' k' v' l'' r'' hr))) (Std.DTreeMap.Internal.Impl.View.v (Std.DTreeMap.Internal.Impl.minView k' v' l'' r'' (Std.DTreeMap.Internal.Impl.glue._proof_4 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_6 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_8 size k' v' l' r' hl sz' k' v' l'' r'' hr))) (Std.DTreeMap.Internal.Impl.inner size k' v' l' r') (Std.DTreeMap.Internal.Impl.Tree.impl (Std.DTreeMap.Internal.Impl.minView k' v' l'' r'' (Std.DTreeMap.Internal.Impl.glue._proof_4 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_6 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_8 size k' v' l' r' hl sz' k' v' l'' r'' hr)).tree) hl (Std.DTreeMap.Internal.Impl.glue._proof_10 size k' v' l' r' hl sz' k' v' l'' r'' hr (Std.DTreeMap.Internal.Impl.Tree.impl (Std.DTreeMap.Internal.Impl.minView k' v' l'' r'' (Std.DTreeMap.Internal.Impl.glue._proof_4 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_6 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_8 size k' v' l' r' hl sz' k' v' l'' r'' hr)).tree) (Std.DTreeMap.Internal.Impl.Tree.balanced_impl (Std.DTreeMap.Internal.Impl.minView k' v' l'' r'' (Std.DTreeMap.Internal.Impl.glue._proof_4 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_6 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_8 size k' v' l' r' hl sz' k' v' l'' r'' hr)).tree)) (Std.DTreeMap.Internal.Impl.glue._proof_12 size k' v' l' r' sz' k' v' l'' r'' hr hlr (Std.DTreeMap.Internal.Impl.Tree.impl (Std.DTreeMap.Internal.Impl.minView k' v' l'' r'' (Std.DTreeMap.Internal.Impl.glue._proof_4 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_6 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_8 size k' v' l' r' hl sz' k' v' l'' r'' hr)).tree) (Std.DTreeMap.Internal.Impl.Tree.size_impl (Std.DTreeMap.Internal.Impl.minView k' v' l'' r'' (Std.DTreeMap.Internal.Impl.glue._proof_4 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_6 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_8 size k' v' l' r' hl sz' k' v' l'' r'' hr)).tree))) (Std.DTreeMap.Internal.Impl.balanceRErase (Std.DTreeMap.Internal.Impl.View.k (Std.DTreeMap.Internal.Impl.maxView k' v' l' r' (Std.DTreeMap.Internal.Impl.glue._proof_14 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_16 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_18 size k' v' l' r' hl sz' k' v' l'' r'' hr))) (Std.DTreeMap.Internal.Impl.View.v (Std.DTreeMap.Internal.Impl.maxView k' v' l' r' (Std.DTreeMap.Internal.Impl.glue._proof_14 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_16 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_18 size k' v' l' r' hl sz' k' v' l'' r'' hr))) (Std.DTreeMap.Internal.Impl.Tree.impl (Std.DTreeMap.Internal.Impl.maxView k' v' l' r' (Std.DTreeMap.Internal.Impl.glue._proof_14 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_16 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_18 size k' v' l' r' hl sz' k' v' l'' r'' hr)).tree) (Std.DTreeMap.Internal.Impl.inner sz' k' v' l'' r'') (Std.DTreeMap.Internal.Impl.glue._proof_10 size k' v' l' r' hl sz' k' v' l'' r'' hr (Std.DTreeMap.Internal.Impl.Tree.impl (Std.DTreeMap.Internal.Impl.maxView k' v' l' r' (Std.DTreeMap.Internal.Impl.glue._proof_14 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_16 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_18 size k' v' l' r' hl sz' k' v' l'' r'' hr)).tree) (Std.DTreeMap.Internal.Impl.Tree.balanced_impl (Std.DTreeMap.Internal.Impl.maxView k' v' l' r' (Std.DTreeMap.Internal.Impl.glue._proof_14 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_16 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_18 size k' v' l' r' hl sz' k' v' l'' r'' hr)).tree)) hr (Std.DTreeMap.Internal.Impl.glue._proof_20 size k' v' l' r' hl sz' k' v' l'' r'' hlr (Std.DTreeMap.Internal.Impl.Tree.impl (Std.DTreeMap.Internal.Impl.maxView k' v' l' r' (Std.DTreeMap.Internal.Impl.glue._proof_14 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_16 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_18 size k' v' l' r' hl sz' k' v' l'' r'' hr)).tree) (Std.DTreeMap.Internal.Impl.Tree.size_impl (Std.DTreeMap.Internal.Impl.maxView k' v' l' r' (Std.DTreeMap.Internal.Impl.glue._proof_14 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_16 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_18 size k' v' l' r' hl sz' k' v' l'' r'' hr)).tree))))) (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k' v' l' r')) (Std.DTreeMap.Internal.Impl.size r))) r hr hlr (fun hr hlr h ↦ Eq.ndrec (fun {hr} hlr hlr h ↦ Eq.ndrec (fun h ↦ Eq.ndrec (id (id (And.casesOn (Eq.mp (Std.DTreeMap.Internal.Impl.balanced_inner_iff._simp_1) hl) (fun left right h ↦ And.casesOn right (fun left right h ↦ And.casesOn right (fun left right h ↦ Eq.casesOn right (fun h ↦ Eq.ndrec (fun hlr hlr right h ↦ Decidable.byContradiction fun a ↦ _private.Std.Data.DTreeMap.Internal.Operations.0.Std.DTreeMap.Internal.Impl.size_glue._proof_1_9 l' r' a) h hlr hlr right) (Eq.refl (HAdd.hAdd (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size l') (OfNat.ofNat 1)) (Std.DTreeMap.Internal.Impl.size r'))) (HEq.refl right)) (Eq.refl right)) (Eq.refl right)) (Eq.refl (Eq.mp (Std.DTreeMap.Internal.Impl.balanced_inner_iff._simp_1) hl))))) (Eq.symm (eq_of_heq h))) (Eq.symm (eq_of_heq h))) (Eq.symm h) hr hlr hlr) (fun sz' k' v' l'' r'' hr hlr h ↦ Eq.ndrec (fun {hr} hlr hlr h ↦ Eq.ndrec (fun h ↦ Eq.ndrec (id (Decidable.casesOn (Nat.decLt size sz') (fun h ↦ Eq.mpr (id (congrFun' (congrArg (Eq) (congrArg (Std.DTreeMap.Internal.Impl.size) (if_neg h))) (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k' v' l' r')) (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner sz' k' v' l'' r''))))) (Eq.mpr (id (congrFun' (congrArg (Eq) (Eq.trans (Std.DTreeMap.Internal.Impl.size_balanceRErase (Std.DTreeMap.Internal.Impl.glue._proof_10 size k' v' l' r' hl sz' k' v' l'' r'' hr (Std.DTreeMap.Internal.Impl.Tree.impl (Std.DTreeMap.Internal.Impl.maxView k' v' l' r' (Std.DTreeMap.Internal.Impl.glue._proof_14 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_16 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_18 size k' v' l' r' hl sz' k' v' l'' r'' hr)).tree) (Std.DTreeMap.Internal.Impl.Tree.balanced_impl (Std.DTreeMap.Internal.Impl.maxView k' v' l' r' (Std.DTreeMap.Internal.Impl.glue._proof_14 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_16 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_18 size k' v' l' r' hl sz' k' v' l'' r'' hr)).tree)) hr (Std.DTreeMap.Internal.Impl.glue._proof_20 size k' v' l' r' hl sz' k' v' l'' r'' hlr (Std.DTreeMap.Internal.Impl.Tree.impl (Std.DTreeMap.Internal.Impl.maxView k' v' l' r' (Std.DTreeMap.Internal.Impl.glue._proof_14 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_16 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_18 size k' v' l' r' hl sz' k' v' l'' r'' hr)).tree) (Std.DTreeMap.Internal.Impl.Tree.size_impl (Std.DTreeMap.Internal.Impl.maxView k' v' l' r' (Std.DTreeMap.Internal.Impl.glue._proof_14 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_16 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_18 size k' v' l' r' hl sz' k' v' l'' r'' hr)).tree))) (congrFun' (congrArg (HAdd.hAdd) (congrFun' (congrArg (HAdd.hAdd) (Std.DTreeMap.Internal.Impl.Tree.size_impl (Std.DTreeMap.Internal.Impl.maxView k' v' l' r' (Std.DTreeMap.Internal.Impl.glue._proof_14 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_16 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_18 size k' v' l' r' hl sz' k' v' l'' r'' hr)).tree)) (OfNat.ofNat 1))) sz'))) (HAdd.hAdd size sz'))) (And.casesOn (Eq.mp (Std.DTreeMap.Internal.Impl.balanced_inner_iff._simp_1) hr) (fun left right h ↦ And.casesOn right (fun left right h ↦ And.casesOn right (fun left right h ↦ And.casesOn (Eq.mp (Std.DTreeMap.Internal.Impl.balanced_inner_iff._simp_1) hl) (fun left right h ↦ And.casesOn right (fun left right h ↦ And.casesOn right (fun left right h ↦ Eq.casesOn right (fun h ↦ Eq.ndrec (fun hlr hlr h right h ↦ Eq.casesOn right (fun h ↦ Eq.ndrec (fun hlr right hlr h h ↦ Decidable.byContradiction fun a ↦ _private.Std.Data.DTreeMap.Internal.Operations.0.Std.DTreeMap.Internal.Impl.size_glue._proof_1_11 l' r' l'' r'' a) h hlr right hlr h) (Eq.refl (HAdd.hAdd (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size l') (OfNat.ofNat 1)) (Std.DTreeMap.Internal.Impl.size r'))) (HEq.refl right)) h hlr hlr h right) (Eq.refl (HAdd.hAdd (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size l'') (OfNat.ofNat 1)) (Std.DTreeMap.Internal.Impl.size r''))) (HEq.refl right)) (Eq.refl right)) (Eq.refl right)) (Eq.refl (Eq.mp (Std.DTreeMap.Internal.Impl.balanced_inner_iff._simp_1) hl))) (Eq.refl right)) (Eq.refl right)) (Eq.refl (Eq.mp (Std.DTreeMap.Internal.Impl.balanced_inner_iff._simp_1) hr))))) fun h ↦ Eq.mpr (id (congrFun' (congrArg (Eq) (congrArg (Std.DTreeMap.Internal.Impl.size) (if_pos h))) (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k' v' l' r')) (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner sz' k' v' l'' r''))))) (Eq.mpr (id (congrFun' (congrArg (Eq) (Eq.trans (Std.DTreeMap.Internal.Impl.size_balanceLErase hl (Std.DTreeMap.Internal.Impl.glue._proof_10 size k' v' l' r' hl sz' k' v' l'' r'' hr (Std.DTreeMap.Internal.Impl.Tree.impl (Std.DTreeMap.Internal.Impl.minView k' v' l'' r'' (Std.DTreeMap.Internal.Impl.glue._proof_4 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_6 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_8 size k' v' l' r' hl sz' k' v' l'' r'' hr)).tree) (Std.DTreeMap.Internal.Impl.Tree.balanced_impl (Std.DTreeMap.Internal.Impl.minView k' v' l'' r'' (Std.DTreeMap.Internal.Impl.glue._proof_4 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_6 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_8 size k' v' l' r' hl sz' k' v' l'' r'' hr)).tree)) (Std.DTreeMap.Internal.Impl.glue._proof_12 size k' v' l' r' sz' k' v' l'' r'' hr hlr (Std.DTreeMap.Internal.Impl.Tree.impl (Std.DTreeMap.Internal.Impl.minView k' v' l'' r'' (Std.DTreeMap.Internal.Impl.glue._proof_4 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_6 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_8 size k' v' l' r' hl sz' k' v' l'' r'' hr)).tree) (Std.DTreeMap.Internal.Impl.Tree.size_impl (Std.DTreeMap.Internal.Impl.minView k' v' l'' r'' (Std.DTreeMap.Internal.Impl.glue._proof_4 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_6 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_8 size k' v' l' r' hl sz' k' v' l'' r'' hr)).tree))) (congrArg (HAdd.hAdd (HAdd.hAdd size (OfNat.ofNat 1))) (Std.DTreeMap.Internal.Impl.Tree.size_impl (Std.DTreeMap.Internal.Impl.minView k' v' l'' r'' (Std.DTreeMap.Internal.Impl.glue._proof_4 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_6 size k' v' l' r' hl sz' k' v' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_8 size k' v' l' r' hl sz' k' v' l'' r'' hr)).tree)))) (HAdd.hAdd size sz'))) (And.casesOn (Eq.mp (Std.DTreeMap.Internal.Impl.balanced_inner_iff._simp_1) hr) (fun left right h ↦ And.casesOn right (fun left right h ↦ And.casesOn right (fun left right h ↦ And.casesOn (Eq.mp (Std.DTreeMap.Internal.Impl.balanced_inner_iff._simp_1) hl) (fun left right h ↦ And.casesOn right (fun left right h ↦ And.casesOn right (fun left right h ↦ Eq.casesOn right (fun h ↦ Eq.ndrec (fun hlr hlr h right h ↦ Eq.casesOn right (fun h ↦ Eq.ndrec (fun hlr right hlr h h ↦ Decidable.byContradiction fun a ↦ _private.Std.Data.DTreeMap.Internal.Operations.0.Std.DTreeMap.Internal.Impl.size_glue._proof_1_10 l' r' l'' r'' a) h hlr right hlr h) (Eq.refl (HAdd.hAdd (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size l') (OfNat.ofNat 1)) (Std.DTreeMap.Internal.Impl.size r'))) (HEq.refl right)) h hlr hlr h right) (Eq.refl (HAdd.hAdd (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size l'') (OfNat.ofNat 1)) (Std.DTreeMap.Internal.Impl.size r''))) (HEq.refl right)) (Eq.refl right)) (Eq.refl right)) (Eq.refl (Eq.mp (Std.DTreeMap.Internal.Impl.balanced_inner_iff._simp_1) hl))) (Eq.refl right)) (Eq.refl right)) (Eq.refl (Eq.mp (Std.DTreeMap.Internal.Impl.balanced_inner_iff._simp_1) hr)))))) (Eq.symm (eq_of_heq h))) (Eq.symm (eq_of_heq h))) (Eq.symm h) hr hlr hlr) (Eq.refl r) (HEq.refl hr) (HEq.refl hlr))) (Eq.symm (eq_of_heq h))) (Eq.symm (eq_of_heq h))) (Eq.symm h) hl hlr) (Eq.refl l) (HEq.refl hl) (HEq.refl hlr))
has type
  (size : Nat) → (k : α) → (v : β k) → (l : Std.DTreeMap.Internal.Impl.{u, v} α β) → (r : Std.DTreeMap.Internal.Impl.{u, v} α β) → (fun x ↦ (hlb : Std.DTreeMap.Internal.Impl.Balanced (Std.DTreeMap.Internal.Impl.inner sz k v x r')) → (hlr : Std.DTreeMap.Internal.Impl.BalanceLErasePrecond (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner sz k v x r')) (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k v l r))) → (fun ll lr hlb hlr ↦ Std.DTreeMap.Internal.Impl.{u, v} α β) x r' hlb hlr) l → (fun x ↦ (hlb : Std.DTreeMap.Internal.Impl.Balanced (Std.DTreeMap.Internal.Impl.inner sz k v x r')) → (hlr : Std.DTreeMap.Internal.Impl.BalanceLErasePrecond (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner sz k v x r')) (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k v l r))) → (fun ll lr hlb hlr ↦ Std.DTreeMap.Internal.Impl.{u, v} α β) x r' hlb hlr) r → (hlb : Std.DTreeMap.Internal.Impl.Balanced (Std.DTreeMap.Internal.Impl.inner sz k v (Std.DTreeMap.Internal.Impl.inner size k v l r) r')) → (hlr : Std.DTreeMap.Internal.Impl.BalanceLErasePrecond (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner sz k v (Std.DTreeMap.Internal.Impl.inner size k v l r) r')) (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k v l r))) → (fun ll lr hlb hlr ↦ Std.DTreeMap.Internal.Impl.{u, v} α β) (Std.DTreeMap.Internal.Impl.inner size k v l r) r' hlb hlr
but is expected to have type
  (size : Nat) → (k : α) → (v : β k) → (l : Std.DTreeMap.Internal.Impl.{u, v} α β) → (r : Std.DTreeMap.Internal.Impl.{u, v} α β) → (fun x ↦ (hlb : Std.DTreeMap.Internal.Impl.Balanced (Std.DTreeMap.Internal.Impl.inner sz k v x r')) → (hlr : Std.DTreeMap.Internal.Impl.BalanceLErasePrecond (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner sz k v x r')) (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k v l r))) → (fun ll lr hlb hlr ↦ Std.DTreeMap.Internal.Impl.{u, v} α β) x r' hlb hlr) l → (fun x ↦ (hlb : Std.DTreeMap.Internal.Impl.Balanced (Std.DTreeMap.Internal.Impl.inner sz k v x r')) → (hlr : Std.DTreeMap.Internal.Impl.BalanceLErasePrecond (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner sz k v x r')) (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k v l r))) → (fun ll lr hlb hlr ↦ Std.DTreeMap.Internal.Impl.{u, v} α β) x r' hlb hlr) r → (fun x ↦ (hlb : Std.DTreeMap.Internal.Impl.Balanced (Std.DTreeMap.Internal.Impl.inner sz k v x r')) → (hlr : Std.DTreeMap.Internal.Impl.BalanceLErasePrecond (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner sz k v x r')) (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k v l r))) → (fun ll lr hlb hlr ↦ Std.DTreeMap.Internal.Impl.{u, v} α β) x r' hlb hlr) (Std.DTreeMap.Internal.Impl.inner size k v l r)
theorem Std.DTreeMap.Internal.Impl.toListModel_minView.{u, v} : ∀ {α : Type u}, ∀ {β : α → Type v}, ∀ {k : α}, ∀ {v : β k}, ∀ {l : Std.DTreeMap.Internal.Impl.{u, v} α β}, ∀ {r : Std.DTreeMap.Internal.Impl.{u, v} α β}, ∀ {hl : Std.DTreeMap.Internal.Impl.Balanced l}, ∀ {hr : Std.DTreeMap.Internal.Impl.Balanced r}, ∀ {hlr : Std.DTreeMap.Internal.Impl.BalancedAtRoot (Std.DTreeMap.Internal.Impl.size l) (Std.DTreeMap.Internal.Impl.size r)}, Eq (List.cons (Sigma.mk (Std.DTreeMap.Internal.Impl.View.k (Std.DTreeMap.Internal.Impl.minView k v l r hl hr hlr)) (Std.DTreeMap.Internal.Impl.View.v (Std.DTreeMap.Internal.Impl.minView k v l r hl hr hlr))) (Std.DTreeMap.Internal.Impl.toListModel (Std.DTreeMap.Internal.Impl.Tree.impl (Std.DTreeMap.Internal.Impl.View.tree (Std.DTreeMap.Internal.Impl.minView k v l r hl hr hlr))))) (HAppend.hAppend (Std.DTreeMap.Internal.Impl.toListModel l) (List.cons (Sigma.mk k v) (Std.DTreeMap.Internal.Impl.toListModel r))) := fun {α β k v l r hl hr hlr} ↦ Std.DTreeMap.Internal.Impl.minView.induct (fun {k v l r hl hr hlr} ↦ Eq (List.cons (Sigma.mk (Std.DTreeMap.Internal.Impl.View.k (Std.DTreeMap.Internal.Impl.minView k v l r hl hr hlr)) (Std.DTreeMap.Internal.Impl.View.v (Std.DTreeMap.Internal.Impl.minView k v l r hl hr hlr))) (Std.DTreeMap.Internal.Impl.toListModel (Std.DTreeMap.Internal.Impl.Tree.impl (Std.DTreeMap.Internal.Impl.View.tree (Std.DTreeMap.Internal.Impl.minView k v l r hl hr hlr))))) (HAppend.hAppend (Std.DTreeMap.Internal.Impl.toListModel l) (List.cons (Sigma.mk k v) (Std.DTreeMap.Internal.Impl.toListModel r)))) (fun k v r hr hl hlr ↦ of_eq_true (eq_self (List.cons (Sigma.mk k v) (Std.DTreeMap.Internal.Impl.toListModel r)))) (fun k v r hr size k' v' l' r' hl hlr dk dv dt hdt hdt' x ih1 ↦ of_eq_true (Eq.trans (congr (congrArg (Eq) (congrArg (List.cons (Sigma.mk (Std.DTreeMap.Internal.Impl.View.k (Std.DTreeMap.Internal.Impl.minView k' v' l' r' (Std.DTreeMap.Internal.Impl.minView._proof_9 size k' v' l' r' hl) (Std.DTreeMap.Internal.Impl.minView._proof_11 size k' v' l' r' hl) (Std.DTreeMap.Internal.Impl.minView._proof_13 size k' v' l' r' hl))) (Std.DTreeMap.Internal.Impl.View.v (Std.DTreeMap.Internal.Impl.minView k' v' l' r' (Std.DTreeMap.Internal.Impl.minView._proof_9 size k' v' l' r' hl) (Std.DTreeMap.Internal.Impl.minView._proof_11 size k' v' l' r' hl) (Std.DTreeMap.Internal.Impl.minView._proof_13 size k' v' l' r' hl))))) (Std.DTreeMap.Internal.Impl.toListModel_balanceRErase))) (congrFun' (congrArg (HAppend.hAppend) (Eq.symm ih1)) (List.cons (Sigma.mk k v) (Std.DTreeMap.Internal.Impl.toListModel r)))) (eq_self (List.cons (Sigma.mk (Std.DTreeMap.Internal.Impl.View.k (Std.DTreeMap.Internal.Impl.minView k' v' l' r' (Std.DTreeMap.Internal.Impl.minView._proof_9 size k' v' l' r' hl) (Std.DTreeMap.Internal.Impl.minView._proof_11 size k' v' l' r' hl) (Std.DTreeMap.Internal.Impl.minView._proof_13 size k' v' l' r' hl))) (Std.DTreeMap.Internal.Impl.View.v (Std.DTreeMap.Internal.Impl.minView k' v' l' r' (Std.DTreeMap.Internal.Impl.minView._proof_9 size k' v' l' r' hl) (Std.DTreeMap.Internal.Impl.minView._proof_11 size k' v' l' r' hl) (Std.DTreeMap.Internal.Impl.minView._proof_13 size k' v' l' r' hl)))) (HAppend.hAppend (Std.DTreeMap.Internal.Impl.toListModel (Std.DTreeMap.Internal.Impl.Tree.impl (Std.DTreeMap.Internal.Impl.minView k' v' l' r' (Std.DTreeMap.Internal.Impl.minView._proof_9 size k' v' l' r' hl) (Std.DTreeMap.Internal.Impl.minView._proof_11 size k' v' l' r' hl) (Std.DTreeMap.Internal.Impl.minView._proof_13 size k' v' l' r' hl)).tree)) (List.cons (Sigma.mk k v) (Std.DTreeMap.Internal.Impl.toListModel r))))))) k v l r hl hr hlr
has type
  (size : Nat) → (k : α) → (v : β k) → (l : Std.DTreeMap.Internal.Impl.{u, v} α β) → (r : Std.DTreeMap.Internal.Impl.{u, v} α β) → (fun x ↦ (hlb : Std.DTreeMap.Internal.Impl.Balanced x) → (hlr : Std.DTreeMap.Internal.Impl.BalanceLErasePrecond (Std.DTreeMap.Internal.Impl.size x) (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k v l r))) → (fun l hlb hlr ↦ Std.DTreeMap.Internal.Impl.{u, v} α β) x hlb hlr) l → (fun x ↦ (hlb : Std.DTreeMap.Internal.Impl.Balanced x) → (hlr : Std.DTreeMap.Internal.Impl.BalanceLErasePrecond (Std.DTreeMap.Internal.Impl.size x) (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k v l r))) → (fun l hlb hlr ↦ Std.DTreeMap.Internal.Impl.{u, v} α β) x hlb hlr) r → Std.DTreeMap.Internal.Impl.Balanced (Std.DTreeMap.Internal.Impl.inner size k v l r) → Std.DTreeMap.Internal.Impl.BalanceLErasePrecond (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k v l r)) (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k v l r)) → Std.DTreeMap.Internal.Impl.{u, v} α β
but is expected to have type
  (size : Nat) → (k : α) → (v : β k) → (l : Std.DTreeMap.Internal.Impl.{u, v} α β) → (r : Std.DTreeMap.Internal.Impl.{u, v} α β) → (fun x ↦ (hlb : Std.DTreeMap.Internal.Impl.Balanced x) → (hlr : Std.DTreeMap.Internal.Impl.BalanceLErasePrecond (Std.DTreeMap.Internal.Impl.size x) (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k v l r))) → (fun l hlb hlr ↦ Std.DTreeMap.Internal.Impl.{u, v} α β) x hlb hlr) l → (fun x ↦ (hlb : Std.DTreeMap.Internal.Impl.Balanced x) → (hlr : Std.DTreeMap.Internal.Impl.BalanceLErasePrecond (Std.DTreeMap.Internal.Impl.size x) (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k v l r))) → (fun l hlb hlr ↦ Std.DTreeMap.Internal.Impl.{u, v} α β) x hlb hlr) r → (fun x ↦ (hlb : Std.DTreeMap.Internal.Impl.Balanced x) → (hlr : Std.DTreeMap.Internal.Impl.BalanceLErasePrecond (Std.DTreeMap.Internal.Impl.size x) (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k v l r))) → (fun l hlb hlr ↦ Std.DTreeMap.Internal.Impl.{u, v} α β) x hlb hlr) (Std.DTreeMap.Internal.Impl.inner size k v l r)
theorem Std.DTreeMap.Internal.Impl.toListModel_glue.{u, v} : ∀ {α : Type u}, ∀ {β : α → Type v}, ∀ {l : Std.DTreeMap.Internal.Impl.{u, v} α β}, ∀ {r : Std.DTreeMap.Internal.Impl.{u, v} α β}, ∀ {hl : Std.DTreeMap.Internal.Impl.Balanced l}, ∀ {hr : Std.DTreeMap.Internal.Impl.Balanced r}, ∀ {hlr : Std.DTreeMap.Internal.Impl.BalancedAtRoot (Std.DTreeMap.Internal.Impl.size l) (Std.DTreeMap.Internal.Impl.size r)}, Eq (Std.DTreeMap.Internal.Impl.toListModel (Std.DTreeMap.Internal.Impl.glue l r hl hr hlr)) (HAppend.hAppend (Std.DTreeMap.Internal.Impl.toListModel l) (Std.DTreeMap.Internal.Impl.toListModel r)) := fun {α β l r hl hr hlr} ↦ Std.DTreeMap.Internal.Impl.casesOn l (fun size k v l r h ↦ Eq.ndrec (fun {hl hlr} ↦ Std.DTreeMap.Internal.Impl.casesOn r (fun size k v l r h ↦ Eq.ndrec (fun {hr hlr} ↦ id (Decidable.casesOn (Nat.decLt size size) (fun h ↦ Eq.mpr (id (congrFun' (congrArg (Eq) (congrArg (Std.DTreeMap.Internal.Impl.toListModel) (if_neg h))) (HAppend.hAppend (Std.DTreeMap.Internal.Impl.toListModel (Std.DTreeMap.Internal.Impl.inner size k v l r)) (Std.DTreeMap.Internal.Impl.toListModel (Std.DTreeMap.Internal.Impl.inner size k v l r))))) (Eq.mpr (id (congrArg (fun _a ↦ Eq _a (HAppend.hAppend (Std.DTreeMap.Internal.Impl.toListModel (Std.DTreeMap.Internal.Impl.inner size k v l r)) (Std.DTreeMap.Internal.Impl.toListModel (Std.DTreeMap.Internal.Impl.inner size k v l r)))) (Std.DTreeMap.Internal.Impl.toListModel_balanceRErase))) (Eq.mpr (id (congrArg (fun _a ↦ Eq (HAppend.hAppend (Std.DTreeMap.Internal.Impl.toListModel (Std.DTreeMap.Internal.Impl.Tree.impl (Std.DTreeMap.Internal.Impl.maxView k v l r (Std.DTreeMap.Internal.Impl.glue._proof_14 size k v l r hl size k v l r hr) (Std.DTreeMap.Internal.Impl.glue._proof_16 size k v l r hl size k v l r hr) (Std.DTreeMap.Internal.Impl.glue._proof_18 size k v l r hl size k v l r hr)).tree)) _a) (HAppend.hAppend (Std.DTreeMap.Internal.Impl.toListModel (Std.DTreeMap.Internal.Impl.inner size k v l r)) (Std.DTreeMap.Internal.Impl.toListModel (Std.DTreeMap.Internal.Impl.inner size k v l r)))) (Eq.symm (List.singleton_append)))) (Eq.mpr (id (congrArg (fun _a ↦ Eq _a (HAppend.hAppend (Std.DTreeMap.Internal.Impl.toListModel (Std.DTreeMap.Internal.Impl.inner size k v l r)) (Std.DTreeMap.Internal.Impl.toListModel (Std.DTreeMap.Internal.Impl.inner size k v l r)))) (Eq.symm (List.append_assoc (Std.DTreeMap.Internal.Impl.toListModel (Std.DTreeMap.Internal.Impl.Tree.impl (Std.DTreeMap.Internal.Impl.maxView k v l r (Std.DTreeMap.Internal.Impl.glue._proof_14 size k v l r hl size k v l r hr) (Std.DTreeMap.Internal.Impl.glue._proof_16 size k v l r hl size k v l r hr) (Std.DTreeMap.Internal.Impl.glue._proof_18 size k v l r hl size k v l r hr)).tree)) (List.cons (Sigma.mk (Std.DTreeMap.Internal.Impl.View.k (Std.DTreeMap.Internal.Impl.maxView k v l r (Std.DTreeMap.Internal.Impl.glue._proof_14 size k v l r hl size k v l r hr) (Std.DTreeMap.Internal.Impl.glue._proof_16 size k v l r hl size k v l r hr) (Std.DTreeMap.Internal.Impl.glue._proof_18 size k v l r hl size k v l r hr))) (Std.DTreeMap.Internal.Impl.View.v (Std.DTreeMap.Internal.Impl.maxView k v l r (Std.DTreeMap.Internal.Impl.glue._proof_14 size k v l r hl size k v l r hr) (Std.DTreeMap.Internal.Impl.glue._proof_16 size k v l r hl size k v l r hr) (Std.DTreeMap.Internal.Impl.glue._proof_18 size k v l r hl size k v l r hr)))) (List.nil)) (Std.DTreeMap.Internal.Impl.toListModel (Std.DTreeMap.Internal.Impl.inner size k v l r)))))) (of_eq_true (Eq.trans (congr (congrArg (Eq) (Eq.trans (congrFun' (congrArg (HAppend.hAppend) (Std.DTreeMap.Internal.Impl.toListModel_maxView)) (HAppend.hAppend (Std.DTreeMap.Internal.Impl.toListModel l) (List.cons (Sigma.mk k v) (Std.DTreeMap.Internal.Impl.toListModel r)))) (List.append_assoc (Std.DTreeMap.Internal.Impl.toListModel l) (List.cons (Sigma.mk k v) (Std.DTreeMap.Internal.Impl.toListModel r)) (HAppend.hAppend (Std.DTreeMap.Internal.Impl.toListModel l) (List.cons (Sigma.mk k v) (Std.DTreeMap.Internal.Impl.toListModel r)))))) (List.append_assoc (Std.DTreeMap.Internal.Impl.toListModel l) (List.cons (Sigma.mk k v) (Std.DTreeMap.Internal.Impl.toListModel r)) (HAppend.hAppend (Std.DTreeMap.Internal.Impl.toListModel l) (List.cons (Sigma.mk k v) (Std.DTreeMap.Internal.Impl.toListModel r))))) (eq_self (HAppend.hAppend (Std.DTreeMap.Internal.Impl.toListModel l) (List.cons (Sigma.mk k v) (HAppend.hAppend (Std.DTreeMap.Internal.Impl.toListModel r) (HAppend.hAppend (Std.DTreeMap.Internal.Impl.toListModel l) (List.cons (Sigma.mk k v) (Std.DTreeMap.Internal.Impl.toListModel r))))))))))))) fun h ↦ Eq.mpr (id (congrFun' (congrArg (Eq) (congrArg (Std.DTreeMap.Internal.Impl.toListModel) (if_pos h))) (HAppend.hAppend (Std.DTreeMap.Internal.Impl.toListModel (Std.DTreeMap.Internal.Impl.inner size k v l r)) (Std.DTreeMap.Internal.Impl.toListModel (Std.DTreeMap.Internal.Impl.inner size k v l r))))) (of_eq_true (Eq.trans (congr (congrArg (Eq) (Eq.trans (Std.DTreeMap.Internal.Impl.toListModel_balanceLErase) (Eq.trans (congrArg (HAppend.hAppend (HAppend.hAppend (Std.DTreeMap.Internal.Impl.toListModel l) (List.cons (Sigma.mk k v) (Std.DTreeMap.Internal.Impl.toListModel r)))) (Std.DTreeMap.Internal.Impl.toListModel_minView)) (List.append_assoc (Std.DTreeMap.Internal.Impl.toListModel l) (List.cons (Sigma.mk k v) (Std.DTreeMap.Internal.Impl.toListModel r)) (HAppend.hAppend (Std.DTreeMap.Internal.Impl.toListModel l) (List.cons (Sigma.mk k v) (Std.DTreeMap.Internal.Impl.toListModel r))))))) (List.append_assoc (Std.DTreeMap.Internal.Impl.toListModel l) (List.cons (Sigma.mk k v) (Std.DTreeMap.Internal.Impl.toListModel r)) (HAppend.hAppend (Std.DTreeMap.Internal.Impl.toListModel l) (List.cons (Sigma.mk k v) (Std.DTreeMap.Internal.Impl.toListModel r))))) (eq_self (HAppend.hAppend (Std.DTreeMap.Internal.Impl.toListModel l) (List.cons (Sigma.mk k v) (HAppend.hAppend (Std.DTreeMap.Internal.Impl.toListModel r) (HAppend.hAppend (Std.DTreeMap.Internal.Impl.toListModel l) (List.cons (Sigma.mk k v) (Std.DTreeMap.Internal.Impl.toListModel r))))))))))) (Eq.symm h) hr hlr) (fun h ↦ Eq.ndrec (fun {hr hlr} ↦ of_eq_true (Eq.trans (congrArg (Eq (HAppend.hAppend (Std.DTreeMap.Internal.Impl.toListModel l) (List.cons (Sigma.mk k v) (Std.DTreeMap.Internal.Impl.toListModel r)))) (List.append_nil (HAppend.hAppend (Std.DTreeMap.Internal.Impl.toListModel l) (List.cons (Sigma.mk k v) (Std.DTreeMap.Internal.Impl.toListModel r))))) (eq_self (HAppend.hAppend (Std.DTreeMap.Internal.Impl.toListModel l) (List.cons (Sigma.mk k v) (Std.DTreeMap.Internal.Impl.toListModel r)))))) (Eq.symm h) hr hlr) (Eq.refl r)) (Eq.symm h) hl hlr) (fun h ↦ Eq.ndrec (fun {hl hlr} ↦ Std.DTreeMap.Internal.Impl.casesOn r (fun size k v l r h ↦ Eq.ndrec (fun {hr hlr} ↦ of_eq_true (eq_self (HAppend.hAppend (Std.DTreeMap.Internal.Impl.toListModel l) (List.cons (Sigma.mk k v) (Std.DTreeMap.Internal.Impl.toListModel r))))) (Eq.symm h) hr hlr) (fun h ↦ Eq.ndrec (fun {hr hlr} ↦ of_eq_true (Eq.trans (congrArg (Eq (List.nil)) (List.append_nil (List.nil))) (eq_self (List.nil)))) (Eq.symm h) hr hlr) (Eq.refl r)) (Eq.symm h) hl hlr) (Eq.refl l)
has type
  (size : Nat) → (k : α) → (v : β k) → (l : Std.DTreeMap.Internal.Impl.{u, v} α β) → (r : Std.DTreeMap.Internal.Impl.{u, v} α β) → (fun x ↦ (hlb : Std.DTreeMap.Internal.Impl.Balanced (Std.DTreeMap.Internal.Impl.inner size k v x r)) → (hlr : Std.DTreeMap.Internal.Impl.BalanceLErasePrecond (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k v x r)) (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k v l r))) → (fun ll lr hlb hlr ↦ Std.DTreeMap.Internal.Impl.{u, v} α β) x r hlb hlr) l → (fun x ↦ (hlb : Std.DTreeMap.Internal.Impl.Balanced (Std.DTreeMap.Internal.Impl.inner size k v x r)) → (hlr : Std.DTreeMap.Internal.Impl.BalanceLErasePrecond (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k v x r)) (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k v l r))) → (fun ll lr hlb hlr ↦ Std.DTreeMap.Internal.Impl.{u, v} α β) x r hlb hlr) r → (hlb : Std.DTreeMap.Internal.Impl.Balanced (Std.DTreeMap.Internal.Impl.inner size k v (Std.DTreeMap.Internal.Impl.inner size k v l r) r)) → (hlr : Std.DTreeMap.Internal.Impl.BalanceLErasePrecond (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k v (Std.DTreeMap.Internal.Impl.inner size k v l r) r)) (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k v l r))) → (fun ll lr hlb hlr ↦ Std.DTreeMap.Internal.Impl.{u, v} α β) (Std.DTreeMap.Internal.Impl.inner size k v l r) r hlb hlr
but is expected to have type
  (size : Nat) → (k : α) → (v : β k) → (l : Std.DTreeMap.Internal.Impl.{u, v} α β) → (r : Std.DTreeMap.Internal.Impl.{u, v} α β) → (fun x ↦ (hlb : Std.DTreeMap.Internal.Impl.Balanced (Std.DTreeMap.Internal.Impl.inner size k v x r)) → (hlr : Std.DTreeMap.Internal.Impl.BalanceLErasePrecond (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k v x r)) (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k v l r))) → (fun ll lr hlb hlr ↦ Std.DTreeMap.Internal.Impl.{u, v} α β) x r hlb hlr) l → (fun x ↦ (hlb : Std.DTreeMap.Internal.Impl.Balanced (Std.DTreeMap.Internal.Impl.inner size k v x r)) → (hlr : Std.DTreeMap.Internal.Impl.BalanceLErasePrecond (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k v x r)) (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k v l r))) → (fun ll lr hlb hlr ↦ Std.DTreeMap.Internal.Impl.{u, v} α β) x r hlb hlr) r → (fun x ↦ (hlb : Std.DTreeMap.Internal.Impl.Balanced (Std.DTreeMap.Internal.Impl.inner size k v x r)) → (hlr : Std.DTreeMap.Internal.Impl.BalanceLErasePrecond (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k v x r)) (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k v l r))) → (fun ll lr hlb hlr ↦ Std.DTreeMap.Internal.Impl.{u, v} α β) x r hlb hlr) (Std.DTreeMap.Internal.Impl.inner size k v l r)
theorem Std.DTreeMap.Internal.Impl.link._unary.eq_def.{u, v} : ∀ {α : Type u}, ∀ {β : α → Type v}, ∀ (k : α), ∀ (v : β k), ∀ (_x : PSigma fun l ↦ PSigma fun r ↦ PSigma fun hl ↦ Std.DTreeMap.Internal.Impl.Balanced r), Eq (Std.DTreeMap.Internal.Impl.link._unary k v _x) (PSigma.casesOn _x fun l r ↦ PSigma.casesOn r fun r hl ↦ PSigma.casesOn hl fun hl hr ↦ Std.DTreeMap.Internal.Impl.insertMin.match_3 (fun l hl ↦ Std.DTreeMap.Internal.Impl.Tree.{u, v} α β (HAdd.hAdd (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size l) (OfNat.ofNat 1)) (Std.DTreeMap.Internal.Impl.size r))) l hl (fun hl ↦ let d : Std.DTreeMap.Internal.Impl.Tree.{u, v} α β (HAdd.hAdd (OfNat.ofNat 1) (Std.DTreeMap.Internal.Impl.size r)) := Std.DTreeMap.Internal.Impl.insertMin k v r (Std.DTreeMap.Internal.Impl.link._proof_6 r hr)
Std.DTreeMap.Internal.Impl.Tree.mk (Std.DTreeMap.Internal.Impl.Tree.impl d) (Std.DTreeMap.Internal.Impl.link._proof_8 k v r hr) (Std.DTreeMap.Internal.Impl.link._proof_10 k v r hr)) fun szl k' v' l' r' hl ↦ Std.DTreeMap.Internal.Impl.insertMin.match_3 (fun r hr ↦ Std.DTreeMap.Internal.Impl.Tree.{u, v} α β (HAdd.hAdd (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner szl k' v' l' r')) (OfNat.ofNat 1)) (Std.DTreeMap.Internal.Impl.size r))) r hr (fun hr ↦ let d : Std.DTreeMap.Internal.Impl.Tree.{u, v} α β (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner szl k' v' l' r')) (OfNat.ofNat 1)) := Std.DTreeMap.Internal.Impl.insertMax k v (Std.DTreeMap.Internal.Impl.inner szl k' v' l' r') (Std.DTreeMap.Internal.Impl.link._proof_12 szl k' v' l' r' hl)
Std.DTreeMap.Internal.Impl.Tree.mk (Std.DTreeMap.Internal.Impl.Tree.impl d) (Std.DTreeMap.Internal.Impl.link._proof_14 k v szl k' v' l' r' hl) (Std.DTreeMap.Internal.Impl.link._proof_16 k v szl k' v' l' r' hl)) fun szr k'' v'' l'' r'' hr ↦ dite (LT.lt (HMul.hMul Std.DTreeMap.Internal.delta szl) szr) (fun h₁ ↦ Std.DTreeMap.Internal.Impl.link.match_1 szl k' v' l' r' l'' (fun x ↦ Std.DTreeMap.Internal.Impl.Tree.{u, v} α β (HAdd.hAdd (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner szl k' v' l' r')) (OfNat.ofNat 1)) (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner szr k'' v'' l'' r'')))) (Std.DTreeMap.Internal.Impl.link._unary k v (PSigma.mk (Std.DTreeMap.Internal.Impl.inner szl k' v' l' r') (PSigma.mk l'' (PSigma.mk (Std.DTreeMap.Internal.Impl.link._proof_18 szl k' v' l' r' hl szr k'' v'' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_4 szl k' v' l' r' hl szr k'' v'' l'' r'' hr))))) fun ℓ hℓ₁ hℓ₂ ↦ Std.DTreeMap.Internal.Impl.Tree.mk (Std.DTreeMap.Internal.Impl.balanceLErase k'' v'' ℓ r'' (Std.DTreeMap.Internal.Impl.glue._proof_10 szl k' v' l' r' hl szr k'' v'' l'' r'' hr ℓ hℓ₁) (Std.DTreeMap.Internal.Impl.glue._proof_6 szl k' v' l' r' hl szr k'' v'' l'' r'' hr) (Std.DTreeMap.Internal.Impl.link._proof_21 szl k' v' l' r' hl szr k'' v'' l'' r'' hr h₁ ℓ hℓ₂)) (Std.DTreeMap.Internal.Impl.link._proof_23 szl k' v' l' r' hl szr k'' v'' l'' r'' hr h₁ ℓ hℓ₁ hℓ₂) (Std.DTreeMap.Internal.Impl.link._proof_26 szl k' v' l' r' hl szr k'' v'' l'' r'' hr h₁ ℓ hℓ₁ hℓ₂)) fun h₁ ↦ dite (LT.lt (HMul.hMul Std.DTreeMap.Internal.delta szr) szl) (fun h₂ ↦ Std.DTreeMap.Internal.Impl.link.match_3 r' szr k'' v'' l'' r'' (fun x ↦ Std.DTreeMap.Internal.Impl.Tree.{u, v} α β (HAdd.hAdd (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner szl k' v' l' r')) (OfNat.ofNat 1)) (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner szr k'' v'' l'' r'')))) (Std.DTreeMap.Internal.Impl.link._unary k v (PSigma.mk r' (PSigma.mk (Std.DTreeMap.Internal.Impl.inner szr k'' v'' l'' r'') (PSigma.mk (Std.DTreeMap.Internal.Impl.glue._proof_16 szl k' v' l' r' hl szr k'' v'' l'' r'' hr) (Std.DTreeMap.Internal.Impl.link._proof_28 szl k' v' l' r' hl szr k'' v'' l'' r'' hr))))) fun ℓ hℓ₁ hℓ₂ ↦ Std.DTreeMap.Internal.Impl.Tree.mk (Std.DTreeMap.Internal.Impl.balanceRErase k' v' l' ℓ (Std.DTreeMap.Internal.Impl.glue._proof_14 szl k' v' l' r' hl szr k'' v'' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_10 szl k' v' l' r' hl szr k'' v'' l'' r'' hr ℓ hℓ₁) (Std.DTreeMap.Internal.Impl.link._proof_31 szl k' v' l' r' hl szr k'' v'' l'' r'' hr h₁ h₂ ℓ hℓ₂)) (Std.DTreeMap.Internal.Impl.link._proof_33 szl k' v' l' r' hl szr k'' v'' l'' r'' hr h₁ h₂ ℓ hℓ₁ hℓ₂) (Std.DTreeMap.Internal.Impl.link._proof_36 szl k' v' l' r' hl szr k'' v'' l'' r'' hr h₁ h₂ ℓ hℓ₁ hℓ₂)) fun h₂ ↦ Std.DTreeMap.Internal.Impl.Tree.mk (Std.DTreeMap.Internal.Impl.inner (HAdd.hAdd (HAdd.hAdd szl (OfNat.ofNat 1)) szr) k v (Std.DTreeMap.Internal.Impl.inner szl k' v' l' r') (Std.DTreeMap.Internal.Impl.inner szr k'' v'' l'' r'')) (Std.DTreeMap.Internal.Impl.link._proof_39 k v szl k' v' l' r' hl szr k'' v'' l'' r'' hr h₁ h₂) (Std.DTreeMap.Internal.Impl.link._proof_41 k v szl k' v' l' r' szr k'' v'' l'' r'')) := fun {α β} k v _x ↦ id (Eq.trans (WellFounded.Nat.fix_eq (fun x ↦ PSigma.casesOn x fun l r ↦ PSigma.casesOn r fun r hl ↦ PSigma.casesOn hl fun hl hr ↦ HAdd.hAdd (SizeOf.sizeOf l) (SizeOf.sizeOf r)) (fun _x a ↦ PSigma.casesOn _x (fun l r a ↦ PSigma.casesOn r (fun r hl a ↦ PSigma.casesOn hl (fun hl hr a ↦ Std.DTreeMap.Internal.Impl.insertMin.match_3 (fun l hl ↦ ((y : PSigma fun l ↦ PSigma fun r ↦ PSigma fun hl ↦ Std.DTreeMap.Internal.Impl.Balanced r) → InvImage (fun x1 x2 ↦ LT.lt x1 x2) (fun x ↦ PSigma.casesOn x fun l r ↦ PSigma.casesOn r fun r hl ↦ PSigma.casesOn hl fun hl hr ↦ HAdd.hAdd (SizeOf.sizeOf l) (SizeOf.sizeOf r)) y (PSigma.mk l (PSigma.mk r (PSigma.mk hl hr))) → Std.DTreeMap.Internal.Impl.Tree.{u, v} α β (HAdd.hAdd (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size y.fst) (OfNat.ofNat 1)) (Std.DTreeMap.Internal.Impl.size y.snd.fst))) → Std.DTreeMap.Internal.Impl.Tree.{u, v} α β (HAdd.hAdd (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size l) (OfNat.ofNat 1)) (Std.DTreeMap.Internal.Impl.size r))) l hl (fun hl x ↦ let d : Std.DTreeMap.Internal.Impl.Tree.{u, v} α β (HAdd.hAdd (OfNat.ofNat 1) (Std.DTreeMap.Internal.Impl.size r)) := Std.DTreeMap.Internal.Impl.insertMin k v r (Std.DTreeMap.Internal.Impl.link._proof_6 r hr)
Std.DTreeMap.Internal.Impl.Tree.mk (Std.DTreeMap.Internal.Impl.Tree.impl d) (Std.DTreeMap.Internal.Impl.link._proof_8 k v r hr) (Std.DTreeMap.Internal.Impl.link._proof_10 k v r hr)) (fun szl k' v' l' r' hl x ↦ Std.DTreeMap.Internal.Impl.insertMin.match_3 (fun r hr ↦ ((y : PSigma fun l ↦ PSigma fun r ↦ PSigma fun hl ↦ Std.DTreeMap.Internal.Impl.Balanced r) → InvImage (fun x1 x2 ↦ LT.lt x1 x2) (fun x ↦ PSigma.casesOn x fun l r ↦ PSigma.casesOn r fun r hl ↦ PSigma.casesOn hl fun hl hr ↦ HAdd.hAdd (SizeOf.sizeOf l) (SizeOf.sizeOf r)) y (PSigma.mk (Std.DTreeMap.Internal.Impl.inner szl k' v' l' r') (PSigma.mk r (PSigma.mk hl hr))) → Std.DTreeMap.Internal.Impl.Tree.{u, v} α β (HAdd.hAdd (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size y.fst) (OfNat.ofNat 1)) (Std.DTreeMap.Internal.Impl.size y.snd.fst))) → Std.DTreeMap.Internal.Impl.Tree.{u, v} α β (HAdd.hAdd (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner szl k' v' l' r')) (OfNat.ofNat 1)) (Std.DTreeMap.Internal.Impl.size r))) r hr (fun hr x ↦ let d : Std.DTreeMap.Internal.Impl.Tree.{u, v} α β (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner szl k' v' l' r')) (OfNat.ofNat 1)) := Std.DTreeMap.Internal.Impl.insertMax k v (Std.DTreeMap.Internal.Impl.inner szl k' v' l' r') (Std.DTreeMap.Internal.Impl.link._proof_12 szl k' v' l' r' hl)
Std.DTreeMap.Internal.Impl.Tree.mk (Std.DTreeMap.Internal.Impl.Tree.impl d) (Std.DTreeMap.Internal.Impl.link._proof_14 k v szl k' v' l' r' hl) (Std.DTreeMap.Internal.Impl.link._proof_16 k v szl k' v' l' r' hl)) (fun szr k'' v'' l'' r'' hr x ↦ dite (LT.lt (HMul.hMul Std.DTreeMap.Internal.delta szl) szr) (fun h₁ ↦ Std.DTreeMap.Internal.Impl.link.match_1 szl k' v' l' r' l'' (fun x ↦ Std.DTreeMap.Internal.Impl.Tree.{u, v} α β (HAdd.hAdd (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner szl k' v' l' r')) (OfNat.ofNat 1)) (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner szr k'' v'' l'' r'')))) (x (PSigma.mk (Std.DTreeMap.Internal.Impl.inner szl k' v' l' r') (PSigma.mk l'' (PSigma.mk (Std.DTreeMap.Internal.Impl.link._proof_18 szl k' v' l' r' hl szr k'' v'' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_4 szl k' v' l' r' hl szr k'' v'' l'' r'' hr)))) (Std.DTreeMap.Internal.Impl.link._unary._proof_1 szl k' v' l' r' hl szr k'' v'' l'' r'' hr h₁)) fun ℓ hℓ₁ hℓ₂ ↦ Std.DTreeMap.Internal.Impl.Tree.mk (Std.DTreeMap.Internal.Impl.balanceLErase k'' v'' ℓ r'' (Std.DTreeMap.Internal.Impl.glue._proof_10 szl k' v' l' r' hl szr k'' v'' l'' r'' hr ℓ hℓ₁) (Std.DTreeMap.Internal.Impl.glue._proof_6 szl k' v' l' r' hl szr k'' v'' l'' r'' hr) (Std.DTreeMap.Internal.Impl.link._proof_21 szl k' v' l' r' hl szr k'' v'' l'' r'' hr h₁ ℓ hℓ₂)) (Std.DTreeMap.Internal.Impl.link._proof_23 szl k' v' l' r' hl szr k'' v'' l'' r'' hr h₁ ℓ hℓ₁ hℓ₂) (Std.DTreeMap.Internal.Impl.link._proof_26 szl k' v' l' r' hl szr k'' v'' l'' r'' hr h₁ ℓ hℓ₁ hℓ₂)) fun h₁ ↦ dite (LT.lt (HMul.hMul Std.DTreeMap.Internal.delta szr) szl) (fun h₂ ↦ Std.DTreeMap.Internal.Impl.link.match_3 r' szr k'' v'' l'' r'' (fun x ↦ Std.DTreeMap.Internal.Impl.Tree.{u, v} α β (HAdd.hAdd (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner szl k' v' l' r')) (OfNat.ofNat 1)) (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner szr k'' v'' l'' r'')))) (x (PSigma.mk r' (PSigma.mk (Std.DTreeMap.Internal.Impl.inner szr k'' v'' l'' r'') (PSigma.mk (Std.DTreeMap.Internal.Impl.glue._proof_16 szl k' v' l' r' hl szr k'' v'' l'' r'' hr) (Std.DTreeMap.Internal.Impl.link._proof_28 szl k' v' l' r' hl szr k'' v'' l'' r'' hr)))) (Std.DTreeMap.Internal.Impl.link._unary._proof_2 szl k' v' l' r' hl szr k'' v'' l'' r'' hr h₂)) fun ℓ hℓ₁ hℓ₂ ↦ Std.DTreeMap.Internal.Impl.Tree.mk (Std.DTreeMap.Internal.Impl.balanceRErase k' v' l' ℓ (Std.DTreeMap.Internal.Impl.glue._proof_14 szl k' v' l' r' hl szr k'' v'' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_10 szl k' v' l' r' hl szr k'' v'' l'' r'' hr ℓ hℓ₁) (Std.DTreeMap.Internal.Impl.link._proof_31 szl k' v' l' r' hl szr k'' v'' l'' r'' hr h₁ h₂ ℓ hℓ₂)) (Std.DTreeMap.Internal.Impl.link._proof_33 szl k' v' l' r' hl szr k'' v'' l'' r'' hr h₁ h₂ ℓ hℓ₁ hℓ₂) (Std.DTreeMap.Internal.Impl.link._proof_36 szl k' v' l' r' hl szr k'' v'' l'' r'' hr h₁ h₂ ℓ hℓ₁ hℓ₂)) fun h₂ ↦ Std.DTreeMap.Internal.Impl.Tree.mk (Std.DTreeMap.Internal.Impl.inner (HAdd.hAdd (HAdd.hAdd szl (OfNat.ofNat 1)) szr) k v (Std.DTreeMap.Internal.Impl.inner szl k' v' l' r') (Std.DTreeMap.Internal.Impl.inner szr k'' v'' l'' r'')) (Std.DTreeMap.Internal.Impl.link._unary._proof_3 k v szl k' v' l' r' hl szr k'' v'' l'' r'' hr h₁ h₂) (Std.DTreeMap.Internal.Impl.link._unary._proof_4 k v szl k' v' l' r' szr k'' v'' l'' r'')) x) a) a) a) a) _x) (Eq.mpr (id (congrFun' (congrArg (Eq) (Eq.trans (_private.Std.Data.DTreeMap.Internal.Operations.0.PSigma.casesOn._arg_pusher (PSigma fun l ↦ PSigma fun r ↦ PSigma fun hl ↦ Std.DTreeMap.Internal.Impl.Balanced r) (fun _x ↦ Std.DTreeMap.Internal.Impl.Tree.{u, v} α β (HAdd.hAdd (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size _x.fst) (OfNat.ofNat 1)) (Std.DTreeMap.Internal.Impl.size _x.snd.fst))) (Std.DTreeMap.Internal.Impl.link._unary k v) (fun _x y ↦ InvImage (fun x1 x2 ↦ LT.lt x1 x2) (fun x ↦ PSigma.casesOn x fun l r ↦ PSigma.casesOn r fun r hl ↦ PSigma.casesOn hl fun hl hr ↦ HAdd.hAdd (SizeOf.sizeOf l) (SizeOf.sizeOf r)) y _x) _x fun l r a ↦ PSigma.casesOn r (fun r hl a ↦ PSigma.casesOn hl (fun hl hr a ↦ Std.DTreeMap.Internal.Impl.insertMin.match_3 (fun l hl ↦ ((y : PSigma fun l ↦ PSigma fun r ↦ PSigma fun hl ↦ Std.DTreeMap.Internal.Impl.Balanced r) → InvImage (fun x1 x2 ↦ LT.lt x1 x2) (fun x ↦ PSigma.casesOn x fun l r ↦ PSigma.casesOn r fun r hl ↦ PSigma.casesOn hl fun hl hr ↦ HAdd.hAdd (SizeOf.sizeOf l) (SizeOf.sizeOf r)) y (PSigma.mk l (PSigma.mk r (PSigma.mk hl hr))) → Std.DTreeMap.Internal.Impl.Tree.{u, v} α β (HAdd.hAdd (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size y.fst) (OfNat.ofNat 1)) (Std.DTreeMap.Internal.Impl.size y.snd.fst))) → Std.DTreeMap.Internal.Impl.Tree.{u, v} α β (HAdd.hAdd (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size l) (OfNat.ofNat 1)) (Std.DTreeMap.Internal.Impl.size r))) l hl (fun hl x ↦ let d : Std.DTreeMap.Internal.Impl.Tree.{u, v} α β (HAdd.hAdd (OfNat.ofNat 1) (Std.DTreeMap.Internal.Impl.size r)) := Std.DTreeMap.Internal.Impl.insertMin k v r (Std.DTreeMap.Internal.Impl.link._proof_6 r hr)
Std.DTreeMap.Internal.Impl.Tree.mk (Std.DTreeMap.Internal.Impl.Tree.impl d) (Std.DTreeMap.Internal.Impl.link._proof_8 k v r hr) (Std.DTreeMap.Internal.Impl.link._proof_10 k v r hr)) (fun szl k' v' l' r' hl x ↦ Std.DTreeMap.Internal.Impl.insertMin.match_3 (fun r hr ↦ ((y : PSigma fun l ↦ PSigma fun r ↦ PSigma fun hl ↦ Std.DTreeMap.Internal.Impl.Balanced r) → InvImage (fun x1 x2 ↦ LT.lt x1 x2) (fun x ↦ PSigma.casesOn x fun l r ↦ PSigma.casesOn r fun r hl ↦ PSigma.casesOn hl fun hl hr ↦ HAdd.hAdd (SizeOf.sizeOf l) (SizeOf.sizeOf r)) y (PSigma.mk (Std.DTreeMap.Internal.Impl.inner szl k' v' l' r') (PSigma.mk r (PSigma.mk hl hr))) → Std.DTreeMap.Internal.Impl.Tree.{u, v} α β (HAdd.hAdd (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size y.fst) (OfNat.ofNat 1)) (Std.DTreeMap.Internal.Impl.size y.snd.fst))) → Std.DTreeMap.Internal.Impl.Tree.{u, v} α β (HAdd.hAdd (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner szl k' v' l' r')) (OfNat.ofNat 1)) (Std.DTreeMap.Internal.Impl.size r))) r hr (fun hr x ↦ let d : Std.DTreeMap.Internal.Impl.Tree.{u, v} α β (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner szl k' v' l' r')) (OfNat.ofNat 1)) := Std.DTreeMap.Internal.Impl.insertMax k v (Std.DTreeMap.Internal.Impl.inner szl k' v' l' r') (Std.DTreeMap.Internal.Impl.link._proof_12 szl k' v' l' r' hl)
Std.DTreeMap.Internal.Impl.Tree.mk (Std.DTreeMap.Internal.Impl.Tree.impl d) (Std.DTreeMap.Internal.Impl.link._proof_14 k v szl k' v' l' r' hl) (Std.DTreeMap.Internal.Impl.link._proof_16 k v szl k' v' l' r' hl)) (fun szr k'' v'' l'' r'' hr x ↦ dite (LT.lt (HMul.hMul Std.DTreeMap.Internal.delta szl) szr) (fun h₁ ↦ Std.DTreeMap.Internal.Impl.link.match_1 szl k' v' l' r' l'' (fun x ↦ Std.DTreeMap.Internal.Impl.Tree.{u, v} α β (HAdd.hAdd (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner szl k' v' l' r')) (OfNat.ofNat 1)) (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner szr k'' v'' l'' r'')))) (x (PSigma.mk (Std.DTreeMap.Internal.Impl.inner szl k' v' l' r') (PSigma.mk l'' (PSigma.mk (Std.DTreeMap.Internal.Impl.link._proof_18 szl k' v' l' r' hl szr k'' v'' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_4 szl k' v' l' r' hl szr k'' v'' l'' r'' hr)))) (Std.DTreeMap.Internal.Impl.link._unary._proof_1 szl k' v' l' r' hl szr k'' v'' l'' r'' hr h₁)) fun ℓ hℓ₁ hℓ₂ ↦ Std.DTreeMap.Internal.Impl.Tree.mk (Std.DTreeMap.Internal.Impl.balanceLErase k'' v'' ℓ r'' (Std.DTreeMap.Internal.Impl.glue._proof_10 szl k' v' l' r' hl szr k'' v'' l'' r'' hr ℓ hℓ₁) (Std.DTreeMap.Internal.Impl.glue._proof_6 szl k' v' l' r' hl szr k'' v'' l'' r'' hr) (Std.DTreeMap.Internal.Impl.link._proof_21 szl k' v' l' r' hl szr k'' v'' l'' r'' hr h₁ ℓ hℓ₂)) (Std.DTreeMap.Internal.Impl.link._proof_23 szl k' v' l' r' hl szr k'' v'' l'' r'' hr h₁ ℓ hℓ₁ hℓ₂) (Std.DTreeMap.Internal.Impl.link._proof_26 szl k' v' l' r' hl szr k'' v'' l'' r'' hr h₁ ℓ hℓ₁ hℓ₂)) fun h₁ ↦ dite (LT.lt (HMul.hMul Std.DTreeMap.Internal.delta szr) szl) (fun h₂ ↦ Std.DTreeMap.Internal.Impl.link.match_3 r' szr k'' v'' l'' r'' (fun x ↦ Std.DTreeMap.Internal.Impl.Tree.{u, v} α β (HAdd.hAdd (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner szl k' v' l' r')) (OfNat.ofNat 1)) (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner szr k'' v'' l'' r'')))) (x (PSigma.mk r' (PSigma.mk (Std.DTreeMap.Internal.Impl.inner szr k'' v'' l'' r'') (PSigma.mk (Std.DTreeMap.Internal.Impl.glue._proof_16 szl k' v' l' r' hl szr k'' v'' l'' r'' hr) (Std.DTreeMap.Internal.Impl.link._proof_28 szl k' v' l' r' hl szr k'' v'' l'' r'' hr)))) (Std.DTreeMap.Internal.Impl.link._unary._proof_2 szl k' v' l' r' hl szr k'' v'' l'' r'' hr h₂)) fun ℓ hℓ₁ hℓ₂ ↦ Std.DTreeMap.Internal.Impl.Tree.mk (Std.DTreeMap.Internal.Impl.balanceRErase k' v' l' ℓ (Std.DTreeMap.Internal.Impl.glue._proof_14 szl k' v' l' r' hl szr k'' v'' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_10 szl k' v' l' r' hl szr k'' v'' l'' r'' hr ℓ hℓ₁) (Std.DTreeMap.Internal.Impl.link._proof_31 szl k' v' l' r' hl szr k'' v'' l'' r'' hr h₁ h₂ ℓ hℓ₂)) (Std.DTreeMap.Internal.Impl.link._proof_33 szl k' v' l' r' hl szr k'' v'' l'' r'' hr h₁ h₂ ℓ hℓ₁ hℓ₂) (Std.DTreeMap.Internal.Impl.link._proof_36 szl k' v' l' r' hl szr k'' v'' l'' r'' hr h₁ h₂ ℓ hℓ₁ hℓ₂)) fun h₂ ↦ Std.DTreeMap.Internal.Impl.Tree.mk (Std.DTreeMap.Internal.Impl.inner (HAdd.hAdd (HAdd.hAdd szl (OfNat.ofNat 1)) szr) k v (Std.DTreeMap.Internal.Impl.inner szl k' v' l' r') (Std.DTreeMap.Internal.Impl.inner szr k'' v'' l'' r'')) (Std.DTreeMap.Internal.Impl.link._unary._proof_3 k v szl k' v' l' r' hl szr k'' v'' l'' r'' hr h₁ h₂) (Std.DTreeMap.Internal.Impl.link._unary._proof_4 k v szl k' v' l' r' szr k'' v'' l'' r'')) x) a) a) a) (congrFun (congrArg (PSigma.rec) (funext fun fst ↦ funext fun snd ↦ Eq.trans (_private.Std.Data.DTreeMap.Internal.Operations.0.PSigma.casesOn._arg_pusher (PSigma fun l ↦ PSigma fun r ↦ PSigma fun hl ↦ Std.DTreeMap.Internal.Impl.Balanced r) (fun _x ↦ Std.DTreeMap.Internal.Impl.Tree.{u, v} α β (HAdd.hAdd (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size _x.fst) (OfNat.ofNat 1)) (Std.DTreeMap.Internal.Impl.size _x.snd.fst))) (Std.DTreeMap.Internal.Impl.link._unary k v) (fun r y ↦ InvImage (fun x1 x2 ↦ LT.lt x1 x2) (fun x ↦ PSigma.casesOn x fun l r ↦ PSigma.casesOn r fun r hl ↦ PSigma.casesOn hl fun hl hr ↦ HAdd.hAdd (SizeOf.sizeOf l) (SizeOf.sizeOf r)) y (PSigma.mk fst r)) snd fun r hl a ↦ PSigma.casesOn hl (fun hl hr a ↦ Std.DTreeMap.Internal.Impl.insertMin.match_3 (fun l hl ↦ ((y : PSigma fun l ↦ PSigma fun r ↦ PSigma fun hl ↦ Std.DTreeMap.Internal.Impl.Balanced r) → InvImage (fun x1 x2 ↦ LT.lt x1 x2) (fun x ↦ PSigma.casesOn x fun l r ↦ PSigma.casesOn r fun r hl ↦ PSigma.casesOn hl fun hl hr ↦ HAdd.hAdd (SizeOf.sizeOf l) (SizeOf.sizeOf r)) y (PSigma.mk l (PSigma.mk r (PSigma.mk hl hr))) → Std.DTreeMap.Internal.Impl.Tree.{u, v} α β (HAdd.hAdd (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size y.fst) (OfNat.ofNat 1)) (Std.DTreeMap.Internal.Impl.size y.snd.fst))) → Std.DTreeMap.Internal.Impl.Tree.{u, v} α β (HAdd.hAdd (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size l) (OfNat.ofNat 1)) (Std.DTreeMap.Internal.Impl.size r))) fst hl (fun hl x ↦ let d : Std.DTreeMap.Internal.Impl.Tree.{u, v} α β (HAdd.hAdd (OfNat.ofNat 1) (Std.DTreeMap.Internal.Impl.size r)) := Std.DTreeMap.Internal.Impl.insertMin k v r (Std.DTreeMap.Internal.Impl.link._proof_6 r hr)
Std.DTreeMap.Internal.Impl.Tree.mk (Std.DTreeMap.Internal.Impl.Tree.impl d) (Std.DTreeMap.Internal.Impl.link._proof_8 k v r hr) (Std.DTreeMap.Internal.Impl.link._proof_10 k v r hr)) (fun szl k' v' l' r' hl x ↦ Std.DTreeMap.Internal.Impl.insertMin.match_3 (fun r hr ↦ ((y : PSigma fun l ↦ PSigma fun r ↦ PSigma fun hl ↦ Std.DTreeMap.Internal.Impl.Balanced r) → InvImage (fun x1 x2 ↦ LT.lt x1 x2) (fun x ↦ PSigma.casesOn x fun l r ↦ PSigma.casesOn r fun r hl ↦ PSigma.casesOn hl fun hl hr ↦ HAdd.hAdd (SizeOf.sizeOf l) (SizeOf.sizeOf r)) y (PSigma.mk (Std.DTreeMap.Internal.Impl.inner szl k' v' l' r') (PSigma.mk r (PSigma.mk hl hr))) → Std.DTreeMap.Internal.Impl.Tree.{u, v} α β (HAdd.hAdd (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size y.fst) (OfNat.ofNat 1)) (Std.DTreeMap.Internal.Impl.size y.snd.fst))) → Std.DTreeMap.Internal.Impl.Tree.{u, v} α β (HAdd.hAdd (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner szl k' v' l' r')) (OfNat.ofNat 1)) (Std.DTreeMap.Internal.Impl.size r))) r hr (fun hr x ↦ let d : Std.DTreeMap.Internal.Impl.Tree.{u, v} α β (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner szl k' v' l' r')) (OfNat.ofNat 1)) := Std.DTreeMap.Internal.Impl.insertMax k v (Std.DTreeMap.Internal.Impl.inner szl k' v' l' r') (Std.DTreeMap.Internal.Impl.link._proof_12 szl k' v' l' r' hl)
Std.DTreeMap.Internal.Impl.Tree.mk (Std.DTreeMap.Internal.Impl.Tree.impl d) (Std.DTreeMap.Internal.Impl.link._proof_14 k v szl k' v' l' r' hl) (Std.DTreeMap.Internal.Impl.link._proof_16 k v szl k' v' l' r' hl)) (fun szr k'' v'' l'' r'' hr x ↦ dite (LT.lt (HMul.hMul Std.DTreeMap.Internal.delta szl) szr) (fun h₁ ↦ Std.DTreeMap.Internal.Impl.link.match_1 szl k' v' l' r' l'' (fun x ↦ Std.DTreeMap.Internal.Impl.Tree.{u, v} α β (HAdd.hAdd (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner szl k' v' l' r')) (OfNat.ofNat 1)) (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner szr k'' v'' l'' r'')))) (x (PSigma.mk (Std.DTreeMap.Internal.Impl.inner szl k' v' l' r') (PSigma.mk l'' (PSigma.mk (Std.DTreeMap.Internal.Impl.link._proof_18 szl k' v' l' r' hl szr k'' v'' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_4 szl k' v' l' r' hl szr k'' v'' l'' r'' hr)))) (Std.DTreeMap.Internal.Impl.link._unary._proof_1 szl k' v' l' r' hl szr k'' v'' l'' r'' hr h₁)) fun ℓ hℓ₁ hℓ₂ ↦ Std.DTreeMap.Internal.Impl.Tree.mk (Std.DTreeMap.Internal.Impl.balanceLErase k'' v'' ℓ r'' (Std.DTreeMap.Internal.Impl.glue._proof_10 szl k' v' l' r' hl szr k'' v'' l'' r'' hr ℓ hℓ₁) (Std.DTreeMap.Internal.Impl.glue._proof_6 szl k' v' l' r' hl szr k'' v'' l'' r'' hr) (Std.DTreeMap.Internal.Impl.link._proof_21 szl k' v' l' r' hl szr k'' v'' l'' r'' hr h₁ ℓ hℓ₂)) (Std.DTreeMap.Internal.Impl.link._proof_23 szl k' v' l' r' hl szr k'' v'' l'' r'' hr h₁ ℓ hℓ₁ hℓ₂) (Std.DTreeMap.Internal.Impl.link._proof_26 szl k' v' l' r' hl szr k'' v'' l'' r'' hr h₁ ℓ hℓ₁ hℓ₂)) fun h₁ ↦ dite (LT.lt (HMul.hMul Std.DTreeMap.Internal.delta szr) szl) (fun h₂ ↦ Std.DTreeMap.Internal.Impl.link.match_3 r' szr k'' v'' l'' r'' (fun x ↦ Std.DTreeMap.Internal.Impl.Tree.{u, v} α β (HAdd.hAdd (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner szl k' v' l' r')) (OfNat.ofNat 1)) (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner szr k'' v'' l'' r'')))) (x (PSigma.mk r' (PSigma.mk (Std.DTreeMap.Internal.Impl.inner szr k'' v'' l'' r'') (PSigma.mk (Std.DTreeMap.Internal.Impl.glue._proof_16 szl k' v' l' r' hl szr k'' v'' l'' r'' hr) (Std.DTreeMap.Internal.Impl.link._proof_28 szl k' v' l' r' hl szr k'' v'' l'' r'' hr)))) (Std.DTreeMap.Internal.Impl.link._unary._proof_2 szl k' v' l' r' hl szr k'' v'' l'' r'' hr h₂)) fun ℓ hℓ₁ hℓ₂ ↦ Std.DTreeMap.Internal.Impl.Tree.mk (Std.DTreeMap.Internal.Impl.balanceRErase k' v' l' ℓ (Std.DTreeMap.Internal.Impl.glue._proof_14 szl k' v' l' r' hl szr k'' v'' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_10 szl k' v' l' r' hl szr k'' v'' l'' r'' hr ℓ hℓ₁) (Std.DTreeMap.Internal.Impl.link._proof_31 szl k' v' l' r' hl szr k'' v'' l'' r'' hr h₁ h₂ ℓ hℓ₂)) (Std.DTreeMap.Internal.Impl.link._proof_33 szl k' v' l' r' hl szr k'' v'' l'' r'' hr h₁ h₂ ℓ hℓ₁ hℓ₂) (Std.DTreeMap.Internal.Impl.link._proof_36 szl k' v' l' r' hl szr k'' v'' l'' r'' hr h₁ h₂ ℓ hℓ₁ hℓ₂)) fun h₂ ↦ Std.DTreeMap.Internal.Impl.Tree.mk (Std.DTreeMap.Internal.Impl.inner (HAdd.hAdd (HAdd.hAdd szl (OfNat.ofNat 1)) szr) k v (Std.DTreeMap.Internal.Impl.inner szl k' v' l' r') (Std.DTreeMap.Internal.Impl.inner szr k'' v'' l'' r'')) (Std.DTreeMap.Internal.Impl.link._unary._proof_3 k v szl k' v' l' r' hl szr k'' v'' l'' r'' hr h₁ h₂) (Std.DTreeMap.Internal.Impl.link._unary._proof_4 k v szl k' v' l' r' szr k'' v'' l'' r'')) x) a) a) (congrFun (congrArg (PSigma.rec) (funext fun fst ↦ funext fun snd ↦ Eq.trans (_private.Std.Data.DTreeMap.Internal.Operations.0.PSigma.casesOn._arg_pusher (PSigma fun l ↦ PSigma fun r ↦ PSigma fun hl ↦ Std.DTreeMap.Internal.Impl.Balanced r) (fun _x ↦ Std.DTreeMap.Internal.Impl.Tree.{u, v} α β (HAdd.hAdd (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size _x.fst) (OfNat.ofNat 1)) (Std.DTreeMap.Internal.Impl.size _x.snd.fst))) (Std.DTreeMap.Internal.Impl.link._unary k v) (fun hl y ↦ InvImage (fun x1 x2 ↦ LT.lt x1 x2) (fun x ↦ PSigma.casesOn x fun l r ↦ PSigma.casesOn r fun r hl ↦ PSigma.casesOn hl fun hl hr ↦ HAdd.hAdd (SizeOf.sizeOf l) (SizeOf.sizeOf r)) y (PSigma.mk fst (PSigma.mk fst hl))) snd fun hl hr a ↦ Std.DTreeMap.Internal.Impl.insertMin.match_3 (fun l hl ↦ ((y : PSigma fun l ↦ PSigma fun r ↦ PSigma fun hl ↦ Std.DTreeMap.Internal.Impl.Balanced r) → InvImage (fun x1 x2 ↦ LT.lt x1 x2) (fun x ↦ PSigma.casesOn x fun l r ↦ PSigma.casesOn r fun r hl ↦ PSigma.casesOn hl fun hl hr ↦ HAdd.hAdd (SizeOf.sizeOf l) (SizeOf.sizeOf r)) y (PSigma.mk l (PSigma.mk fst (PSigma.mk hl hr))) → Std.DTreeMap.Internal.Impl.Tree.{u, v} α β (HAdd.hAdd (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size y.fst) (OfNat.ofNat 1)) (Std.DTreeMap.Internal.Impl.size y.snd.fst))) → Std.DTreeMap.Internal.Impl.Tree.{u, v} α β (HAdd.hAdd (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size l) (OfNat.ofNat 1)) (Std.DTreeMap.Internal.Impl.size fst))) fst hl (fun hl x ↦ let d : Std.DTreeMap.Internal.Impl.Tree.{u, v} α β (HAdd.hAdd (OfNat.ofNat 1) (Std.DTreeMap.Internal.Impl.size fst)) := Std.DTreeMap.Internal.Impl.insertMin k v fst (Std.DTreeMap.Internal.Impl.link._proof_6 fst hr)
Std.DTreeMap.Internal.Impl.Tree.mk (Std.DTreeMap.Internal.Impl.Tree.impl d) (Std.DTreeMap.Internal.Impl.link._proof_8 k v fst hr) (Std.DTreeMap.Internal.Impl.link._proof_10 k v fst hr)) (fun szl k' v' l' r' hl x ↦ Std.DTreeMap.Internal.Impl.insertMin.match_3 (fun r hr ↦ ((y : PSigma fun l ↦ PSigma fun r ↦ PSigma fun hl ↦ Std.DTreeMap.Internal.Impl.Balanced r) → InvImage (fun x1 x2 ↦ LT.lt x1 x2) (fun x ↦ PSigma.casesOn x fun l r ↦ PSigma.casesOn r fun r hl ↦ PSigma.casesOn hl fun hl hr ↦ HAdd.hAdd (SizeOf.sizeOf l) (SizeOf.sizeOf r)) y (PSigma.mk (Std.DTreeMap.Internal.Impl.inner szl k' v' l' r') (PSigma.mk r (PSigma.mk hl hr))) → Std.DTreeMap.Internal.Impl.Tree.{u, v} α β (HAdd.hAdd (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size y.fst) (OfNat.ofNat 1)) (Std.DTreeMap.Internal.Impl.size y.snd.fst))) → Std.DTreeMap.Internal.Impl.Tree.{u, v} α β (HAdd.hAdd (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner szl k' v' l' r')) (OfNat.ofNat 1)) (Std.DTreeMap.Internal.Impl.size r))) fst hr (fun hr x ↦ let d : Std.DTreeMap.Internal.Impl.Tree.{u, v} α β (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner szl k' v' l' r')) (OfNat.ofNat 1)) := Std.DTreeMap.Internal.Impl.insertMax k v (Std.DTreeMap.Internal.Impl.inner szl k' v' l' r') (Std.DTreeMap.Internal.Impl.link._proof_12 szl k' v' l' r' hl)
Std.DTreeMap.Internal.Impl.Tree.mk (Std.DTreeMap.Internal.Impl.Tree.impl d) (Std.DTreeMap.Internal.Impl.link._proof_14 k v szl k' v' l' r' hl) (Std.DTreeMap.Internal.Impl.link._proof_16 k v szl k' v' l' r' hl)) (fun szr k'' v'' l'' r'' hr x ↦ dite (LT.lt (HMul.hMul Std.DTreeMap.Internal.delta szl) szr) (fun h₁ ↦ Std.DTreeMap.Internal.Impl.link.match_1 szl k' v' l' r' l'' (fun x ↦ Std.DTreeMap.Internal.Impl.Tree.{u, v} α β (HAdd.hAdd (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner szl k' v' l' r')) (OfNat.ofNat 1)) (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner szr k'' v'' l'' r'')))) (x (PSigma.mk (Std.DTreeMap.Internal.Impl.inner szl k' v' l' r') (PSigma.mk l'' (PSigma.mk (Std.DTreeMap.Internal.Impl.link._proof_18 szl k' v' l' r' hl szr k'' v'' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_4 szl k' v' l' r' hl szr k'' v'' l'' r'' hr)))) (Std.DTreeMap.Internal.Impl.link._unary._proof_1 szl k' v' l' r' hl szr k'' v'' l'' r'' hr h₁)) fun ℓ hℓ₁ hℓ₂ ↦ Std.DTreeMap.Internal.Impl.Tree.mk (Std.DTreeMap.Internal.Impl.balanceLErase k'' v'' ℓ r'' (Std.DTreeMap.Internal.Impl.glue._proof_10 szl k' v' l' r' hl szr k'' v'' l'' r'' hr ℓ hℓ₁) (Std.DTreeMap.Internal.Impl.glue._proof_6 szl k' v' l' r' hl szr k'' v'' l'' r'' hr) (Std.DTreeMap.Internal.Impl.link._proof_21 szl k' v' l' r' hl szr k'' v'' l'' r'' hr h₁ ℓ hℓ₂)) (Std.DTreeMap.Internal.Impl.link._proof_23 szl k' v' l' r' hl szr k'' v'' l'' r'' hr h₁ ℓ hℓ₁ hℓ₂) (Std.DTreeMap.Internal.Impl.link._proof_26 szl k' v' l' r' hl szr k'' v'' l'' r'' hr h₁ ℓ hℓ₁ hℓ₂)) fun h₁ ↦ dite (LT.lt (HMul.hMul Std.DTreeMap.Internal.delta szr) szl) (fun h₂ ↦ Std.DTreeMap.Internal.Impl.link.match_3 r' szr k'' v'' l'' r'' (fun x ↦ Std.DTreeMap.Internal.Impl.Tree.{u, v} α β (HAdd.hAdd (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner szl k' v' l' r')) (OfNat.ofNat 1)) (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner szr k'' v'' l'' r'')))) (x (PSigma.mk r' (PSigma.mk (Std.DTreeMap.Internal.Impl.inner szr k'' v'' l'' r'') (PSigma.mk (Std.DTreeMap.Internal.Impl.glue._proof_16 szl k' v' l' r' hl szr k'' v'' l'' r'' hr) (Std.DTreeMap.Internal.Impl.link._proof_28 szl k' v' l' r' hl szr k'' v'' l'' r'' hr)))) (Std.DTreeMap.Internal.Impl.link._unary._proof_2 szl k' v' l' r' hl szr k'' v'' l'' r'' hr h₂)) fun ℓ hℓ₁ hℓ₂ ↦ Std.DTreeMap.Internal.Impl.Tree.mk (Std.DTreeMap.Internal.Impl.balanceRErase k' v' l' ℓ (Std.DTreeMap.Internal.Impl.glue._proof_14 szl k' v' l' r' hl szr k'' v'' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_10 szl k' v' l' r' hl szr k'' v'' l'' r'' hr ℓ hℓ₁) (Std.DTreeMap.Internal.Impl.link._proof_31 szl k' v' l' r' hl szr k'' v'' l'' r'' hr h₁ h₂ ℓ hℓ₂)) (Std.DTreeMap.Internal.Impl.link._proof_33 szl k' v' l' r' hl szr k'' v'' l'' r'' hr h₁ h₂ ℓ hℓ₁ hℓ₂) (Std.DTreeMap.Internal.Impl.link._proof_36 szl k' v' l' r' hl szr k'' v'' l'' r'' hr h₁ h₂ ℓ hℓ₁ hℓ₂)) fun h₂ ↦ Std.DTreeMap.Internal.Impl.Tree.mk (Std.DTreeMap.Internal.Impl.inner (HAdd.hAdd (HAdd.hAdd szl (OfNat.ofNat 1)) szr) k v (Std.DTreeMap.Internal.Impl.inner szl k' v' l' r') (Std.DTreeMap.Internal.Impl.inner szr k'' v'' l'' r'')) (Std.DTreeMap.Internal.Impl.link._unary._proof_3 k v szl k' v' l' r' hl szr k'' v'' l'' r'' hr h₁ h₂) (Std.DTreeMap.Internal.Impl.link._unary._proof_4 k v szl k' v' l' r' szr k'' v'' l'' r'')) x) a) (congrFun (congrArg (PSigma.rec) (funext fun fst ↦ funext fun snd ↦ Eq.trans (_private.Std.Data.DTreeMap.Internal.Operations.0.Std.DTreeMap.Internal.Impl.insertMin.match_3._arg_pusher (fun l hl ↦ Std.DTreeMap.Internal.Impl.Tree.{u, v} α β (HAdd.hAdd (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size l) (OfNat.ofNat 1)) (Std.DTreeMap.Internal.Impl.size fst))) (PSigma fun l ↦ PSigma fun r ↦ PSigma fun hl ↦ Std.DTreeMap.Internal.Impl.Balanced r) (fun _x ↦ Std.DTreeMap.Internal.Impl.Tree.{u, v} α β (HAdd.hAdd (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size _x.fst) (OfNat.ofNat 1)) (Std.DTreeMap.Internal.Impl.size _x.snd.fst))) (Std.DTreeMap.Internal.Impl.link._unary k v) (fun l hl y ↦ InvImage (fun x1 x2 ↦ LT.lt x1 x2) (fun x ↦ PSigma.casesOn x fun l r ↦ PSigma.casesOn r fun r hl ↦ PSigma.casesOn hl fun hl hr ↦ HAdd.hAdd (SizeOf.sizeOf l) (SizeOf.sizeOf r)) y (PSigma.mk l (PSigma.mk fst (PSigma.mk hl snd)))) fst fst (fun hl x ↦ let d : Std.DTreeMap.Internal.Impl.Tree.{u, v} α β (HAdd.hAdd (OfNat.ofNat 1) (Std.DTreeMap.Internal.Impl.size fst)) := Std.DTreeMap.Internal.Impl.insertMin k v fst (Std.DTreeMap.Internal.Impl.link._proof_6 fst snd)
Std.DTreeMap.Internal.Impl.Tree.mk (Std.DTreeMap.Internal.Impl.Tree.impl d) (Std.DTreeMap.Internal.Impl.link._proof_8 k v fst snd) (Std.DTreeMap.Internal.Impl.link._proof_10 k v fst snd)) fun szl k' v' l' r' hl x ↦ Std.DTreeMap.Internal.Impl.insertMin.match_3 (fun r hr ↦ ((y : PSigma fun l ↦ PSigma fun r ↦ PSigma fun hl ↦ Std.DTreeMap.Internal.Impl.Balanced r) → InvImage (fun x1 x2 ↦ LT.lt x1 x2) (fun x ↦ PSigma.casesOn x fun l r ↦ PSigma.casesOn r fun r hl ↦ PSigma.casesOn hl fun hl hr ↦ HAdd.hAdd (SizeOf.sizeOf l) (SizeOf.sizeOf r)) y (PSigma.mk (Std.DTreeMap.Internal.Impl.inner szl k' v' l' r') (PSigma.mk r (PSigma.mk hl hr))) → Std.DTreeMap.Internal.Impl.Tree.{u, v} α β (HAdd.hAdd (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size y.fst) (OfNat.ofNat 1)) (Std.DTreeMap.Internal.Impl.size y.snd.fst))) → Std.DTreeMap.Internal.Impl.Tree.{u, v} α β (HAdd.hAdd (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner szl k' v' l' r')) (OfNat.ofNat 1)) (Std.DTreeMap.Internal.Impl.size r))) fst snd (fun hr x ↦ let d : Std.DTreeMap.Internal.Impl.Tree.{u, v} α β (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner szl k' v' l' r')) (OfNat.ofNat 1)) := Std.DTreeMap.Internal.Impl.insertMax k v (Std.DTreeMap.Internal.Impl.inner szl k' v' l' r') (Std.DTreeMap.Internal.Impl.link._proof_12 szl k' v' l' r' hl)
Std.DTreeMap.Internal.Impl.Tree.mk (Std.DTreeMap.Internal.Impl.Tree.impl d) (Std.DTreeMap.Internal.Impl.link._proof_14 k v szl k' v' l' r' hl) (Std.DTreeMap.Internal.Impl.link._proof_16 k v szl k' v' l' r' hl)) (fun szr k'' v'' l'' r'' hr x ↦ dite (LT.lt (HMul.hMul Std.DTreeMap.Internal.delta szl) szr) (fun h₁ ↦ Std.DTreeMap.Internal.Impl.link.match_1 szl k' v' l' r' l'' (fun x ↦ Std.DTreeMap.Internal.Impl.Tree.{u, v} α β (HAdd.hAdd (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner szl k' v' l' r')) (OfNat.ofNat 1)) (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner szr k'' v'' l'' r'')))) (x (PSigma.mk (Std.DTreeMap.Internal.Impl.inner szl k' v' l' r') (PSigma.mk l'' (PSigma.mk (Std.DTreeMap.Internal.Impl.link._proof_18 szl k' v' l' r' hl szr k'' v'' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_4 szl k' v' l' r' hl szr k'' v'' l'' r'' hr)))) (Std.DTreeMap.Internal.Impl.link._unary._proof_1 szl k' v' l' r' hl szr k'' v'' l'' r'' hr h₁)) fun ℓ hℓ₁ hℓ₂ ↦ Std.DTreeMap.Internal.Impl.Tree.mk (Std.DTreeMap.Internal.Impl.balanceLErase k'' v'' ℓ r'' (Std.DTreeMap.Internal.Impl.glue._proof_10 szl k' v' l' r' hl szr k'' v'' l'' r'' hr ℓ hℓ₁) (Std.DTreeMap.Internal.Impl.glue._proof_6 szl k' v' l' r' hl szr k'' v'' l'' r'' hr) (Std.DTreeMap.Internal.Impl.link._proof_21 szl k' v' l' r' hl szr k'' v'' l'' r'' hr h₁ ℓ hℓ₂)) (Std.DTreeMap.Internal.Impl.link._proof_23 szl k' v' l' r' hl szr k'' v'' l'' r'' hr h₁ ℓ hℓ₁ hℓ₂) (Std.DTreeMap.Internal.Impl.link._proof_26 szl k' v' l' r' hl szr k'' v'' l'' r'' hr h₁ ℓ hℓ₁ hℓ₂)) fun h₁ ↦ dite (LT.lt (HMul.hMul Std.DTreeMap.Internal.delta szr) szl) (fun h₂ ↦ Std.DTreeMap.Internal.Impl.link.match_3 r' szr k'' v'' l'' r'' (fun x ↦ Std.DTreeMap.Internal.Impl.Tree.{u, v} α β (HAdd.hAdd (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner szl k' v' l' r')) (OfNat.ofNat 1)) (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner szr k'' v'' l'' r'')))) (x (PSigma.mk r' (PSigma.mk (Std.DTreeMap.Internal.Impl.inner szr k'' v'' l'' r'') (PSigma.mk (Std.DTreeMap.Internal.Impl.glue._proof_16 szl k' v' l' r' hl szr k'' v'' l'' r'' hr) (Std.DTreeMap.Internal.Impl.link._proof_28 szl k' v' l' r' hl szr k'' v'' l'' r'' hr)))) (Std.DTreeMap.Internal.Impl.link._unary._proof_2 szl k' v' l' r' hl szr k'' v'' l'' r'' hr h₂)) fun ℓ hℓ₁ hℓ₂ ↦ Std.DTreeMap.Internal.Impl.Tree.mk (Std.DTreeMap.Internal.Impl.balanceRErase k' v' l' ℓ (Std.DTreeMap.Internal.Impl.glue._proof_14 szl k' v' l' r' hl szr k'' v'' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_10 szl k' v' l' r' hl szr k'' v'' l'' r'' hr ℓ hℓ₁) (Std.DTreeMap.Internal.Impl.link._proof_31 szl k' v' l' r' hl szr k'' v'' l'' r'' hr h₁ h₂ ℓ hℓ₂)) (Std.DTreeMap.Internal.Impl.link._proof_33 szl k' v' l' r' hl szr k'' v'' l'' r'' hr h₁ h₂ ℓ hℓ₁ hℓ₂) (Std.DTreeMap.Internal.Impl.link._proof_36 szl k' v' l' r' hl szr k'' v'' l'' r'' hr h₁ h₂ ℓ hℓ₁ hℓ₂)) fun h₂ ↦ Std.DTreeMap.Internal.Impl.Tree.mk (Std.DTreeMap.Internal.Impl.inner (HAdd.hAdd (HAdd.hAdd szl (OfNat.ofNat 1)) szr) k v (Std.DTreeMap.Internal.Impl.inner szl k' v' l' r') (Std.DTreeMap.Internal.Impl.inner szr k'' v'' l'' r'')) (Std.DTreeMap.Internal.Impl.link._unary._proof_3 k v szl k' v' l' r' hl szr k'' v'' l'' r'' hr h₁ h₂) (Std.DTreeMap.Internal.Impl.link._unary._proof_4 k v szl k' v' l' r' szr k'' v'' l'' r'')) x) (congrArg (Std.DTreeMap.Internal.Impl.insertMin.match_3 (fun l hl ↦ Std.DTreeMap.Internal.Impl.Tree.{u, v} α β (HAdd.hAdd (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size l) (OfNat.ofNat 1)) (Std.DTreeMap.Internal.Impl.size fst))) fst fst fun hr ↦ Std.DTreeMap.Internal.Impl.Tree.mk (Std.DTreeMap.Internal.Impl.Tree.impl (Std.DTreeMap.Internal.Impl.insertMin k v fst (Std.DTreeMap.Internal.Impl.link._proof_6 fst snd))) (Std.DTreeMap.Internal.Impl.link._proof_8 k v fst snd) (Std.DTreeMap.Internal.Impl.link._proof_10 k v fst snd)) (funext fun sz ↦ funext fun k' ↦ funext fun v' ↦ funext fun l' ↦ funext fun r' ↦ funext fun hr ↦ _private.Std.Data.DTreeMap.Internal.Operations.0.Std.DTreeMap.Internal.Impl.insertMin.match_3._arg_pusher (fun r hr ↦ Std.DTreeMap.Internal.Impl.Tree.{u, v} α β (HAdd.hAdd (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner sz k' v' l' r')) (OfNat.ofNat 1)) (Std.DTreeMap.Internal.Impl.size r))) (PSigma fun l ↦ PSigma fun r ↦ PSigma fun hl ↦ Std.DTreeMap.Internal.Impl.Balanced r) (fun _x ↦ Std.DTreeMap.Internal.Impl.Tree.{u, v} α β (HAdd.hAdd (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size _x.fst) (OfNat.ofNat 1)) (Std.DTreeMap.Internal.Impl.size _x.snd.fst))) (Std.DTreeMap.Internal.Impl.link._unary k v) (fun r hr y ↦ InvImage (fun x1 x2 ↦ LT.lt x1 x2) (fun x ↦ PSigma.casesOn x fun l r ↦ PSigma.casesOn r fun r hl ↦ PSigma.casesOn hl fun hl hr ↦ HAdd.hAdd (SizeOf.sizeOf l) (SizeOf.sizeOf r)) y (PSigma.mk (Std.DTreeMap.Internal.Impl.inner sz k' v' l' r') (PSigma.mk r (PSigma.mk hr hr)))) fst snd (fun hr x ↦ let d : Std.DTreeMap.Internal.Impl.Tree.{u, v} α β (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner sz k' v' l' r')) (OfNat.ofNat 1)) := Std.DTreeMap.Internal.Impl.insertMax k v (Std.DTreeMap.Internal.Impl.inner sz k' v' l' r') (Std.DTreeMap.Internal.Impl.link._proof_12 sz k' v' l' r' hr)
Std.DTreeMap.Internal.Impl.Tree.mk (Std.DTreeMap.Internal.Impl.Tree.impl d) (Std.DTreeMap.Internal.Impl.link._proof_14 k v sz k' v' l' r' hr) (Std.DTreeMap.Internal.Impl.link._proof_16 k v sz k' v' l' r' hr)) fun szr k'' v'' l'' r'' hr x ↦ dite (LT.lt (HMul.hMul Std.DTreeMap.Internal.delta sz) szr) (fun h₁ ↦ Std.DTreeMap.Internal.Impl.link.match_1 sz k' v' l' r' l'' (fun x ↦ Std.DTreeMap.Internal.Impl.Tree.{u, v} α β (HAdd.hAdd (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner sz k' v' l' r')) (OfNat.ofNat 1)) (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner szr k'' v'' l'' r'')))) (x (PSigma.mk (Std.DTreeMap.Internal.Impl.inner sz k' v' l' r') (PSigma.mk l'' (PSigma.mk (Std.DTreeMap.Internal.Impl.link._proof_18 sz k' v' l' r' hr szr k'' v'' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_4 sz k' v' l' r' hr szr k'' v'' l'' r'' hr)))) (Std.DTreeMap.Internal.Impl.link._unary._proof_1 sz k' v' l' r' hr szr k'' v'' l'' r'' hr h₁)) fun ℓ hℓ₁ hℓ₂ ↦ Std.DTreeMap.Internal.Impl.Tree.mk (Std.DTreeMap.Internal.Impl.balanceLErase k'' v'' ℓ r'' (Std.DTreeMap.Internal.Impl.glue._proof_10 sz k' v' l' r' hr szr k'' v'' l'' r'' hr ℓ hℓ₁) (Std.DTreeMap.Internal.Impl.glue._proof_6 sz k' v' l' r' hr szr k'' v'' l'' r'' hr) (Std.DTreeMap.Internal.Impl.link._proof_21 sz k' v' l' r' hr szr k'' v'' l'' r'' hr h₁ ℓ hℓ₂)) (Std.DTreeMap.Internal.Impl.link._proof_23 sz k' v' l' r' hr szr k'' v'' l'' r'' hr h₁ ℓ hℓ₁ hℓ₂) (Std.DTreeMap.Internal.Impl.link._proof_26 sz k' v' l' r' hr szr k'' v'' l'' r'' hr h₁ ℓ hℓ₁ hℓ₂)) fun h₁ ↦ dite (LT.lt (HMul.hMul Std.DTreeMap.Internal.delta szr) sz) (fun h₂ ↦ Std.DTreeMap.Internal.Impl.link.match_3 r' szr k'' v'' l'' r'' (fun x ↦ Std.DTreeMap.Internal.Impl.Tree.{u, v} α β (HAdd.hAdd (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner sz k' v' l' r')) (OfNat.ofNat 1)) (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner szr k'' v'' l'' r'')))) (x (PSigma.mk r' (PSigma.mk (Std.DTreeMap.Internal.Impl.inner szr k'' v'' l'' r'') (PSigma.mk (Std.DTreeMap.Internal.Impl.glue._proof_16 sz k' v' l' r' hr szr k'' v'' l'' r'' hr) (Std.DTreeMap.Internal.Impl.link._proof_28 sz k' v' l' r' hr szr k'' v'' l'' r'' hr)))) (Std.DTreeMap.Internal.Impl.link._unary._proof_2 sz k' v' l' r' hr szr k'' v'' l'' r'' hr h₂)) fun ℓ hℓ₁ hℓ₂ ↦ Std.DTreeMap.Internal.Impl.Tree.mk (Std.DTreeMap.Internal.Impl.balanceRErase k' v' l' ℓ (Std.DTreeMap.Internal.Impl.glue._proof_14 sz k' v' l' r' hr szr k'' v'' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_10 sz k' v' l' r' hr szr k'' v'' l'' r'' hr ℓ hℓ₁) (Std.DTreeMap.Internal.Impl.link._proof_31 sz k' v' l' r' hr szr k'' v'' l'' r'' hr h₁ h₂ ℓ hℓ₂)) (Std.DTreeMap.Internal.Impl.link._proof_33 sz k' v' l' r' hr szr k'' v'' l'' r'' hr h₁ h₂ ℓ hℓ₁ hℓ₂) (Std.DTreeMap.Internal.Impl.link._proof_36 sz k' v' l' r' hr szr k'' v'' l'' r'' hr h₁ h₂ ℓ hℓ₁ hℓ₂)) fun h₂ ↦ Std.DTreeMap.Internal.Impl.Tree.mk (Std.DTreeMap.Internal.Impl.inner (HAdd.hAdd (HAdd.hAdd sz (OfNat.ofNat 1)) szr) k v (Std.DTreeMap.Internal.Impl.inner sz k' v' l' r') (Std.DTreeMap.Internal.Impl.inner szr k'' v'' l'' r'')) (Std.DTreeMap.Internal.Impl.link._unary._proof_3 k v sz k' v' l' r' hr szr k'' v'' l'' r'' hr h₁ h₂) (Std.DTreeMap.Internal.Impl.link._unary._proof_4 k v sz k' v' l' r' szr k'' v'' l'' r''))))) snd))) snd))) _x))) (PSigma.rec (fun fst snd ↦ PSigma.rec (fun fst snd ↦ PSigma.rec (fun fst snd ↦ Std.DTreeMap.Internal.Impl.insertMin.match_3 (fun l hl ↦ Std.DTreeMap.Internal.Impl.Tree.{u, v} α β (HAdd.hAdd (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size l) (OfNat.ofNat 1)) (Std.DTreeMap.Internal.Impl.size fst))) fst fst (fun hr ↦ Std.DTreeMap.Internal.Impl.Tree.mk (Std.DTreeMap.Internal.Impl.Tree.impl (Std.DTreeMap.Internal.Impl.insertMin k v fst (Std.DTreeMap.Internal.Impl.link._proof_6 fst snd))) (Std.DTreeMap.Internal.Impl.link._proof_8 k v fst snd) (Std.DTreeMap.Internal.Impl.link._proof_10 k v fst snd)) fun szl k' v' l' r' hl ↦ Std.DTreeMap.Internal.Impl.insertMin.match_3 (fun r hr ↦ Std.DTreeMap.Internal.Impl.Tree.{u, v} α β (HAdd.hAdd (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner szl k' v' l' r')) (OfNat.ofNat 1)) (Std.DTreeMap.Internal.Impl.size r))) fst snd (fun hr ↦ Std.DTreeMap.Internal.Impl.Tree.mk (Std.DTreeMap.Internal.Impl.Tree.impl (Std.DTreeMap.Internal.Impl.insertMax k v (Std.DTreeMap.Internal.Impl.inner szl k' v' l' r') (Std.DTreeMap.Internal.Impl.link._proof_12 szl k' v' l' r' hl))) (Std.DTreeMap.Internal.Impl.link._proof_14 k v szl k' v' l' r' hl) (Std.DTreeMap.Internal.Impl.link._proof_16 k v szl k' v' l' r' hl)) fun szr k'' v'' l'' r'' hr ↦ dite (LT.lt (HMul.hMul Std.DTreeMap.Internal.delta szl) szr) (fun h₁ ↦ Std.DTreeMap.Internal.Impl.link.match_1 szl k' v' l' r' l'' (fun x ↦ Std.DTreeMap.Internal.Impl.Tree.{u, v} α β (HAdd.hAdd (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner szl k' v' l' r')) (OfNat.ofNat 1)) (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner szr k'' v'' l'' r'')))) (Std.DTreeMap.Internal.Impl.link._unary k v (PSigma.mk (Std.DTreeMap.Internal.Impl.inner szl k' v' l' r') (PSigma.mk l'' (PSigma.mk (Std.DTreeMap.Internal.Impl.link._proof_18 szl k' v' l' r' hl szr k'' v'' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_4 szl k' v' l' r' hl szr k'' v'' l'' r'' hr))))) fun ℓ hℓ₁ hℓ₂ ↦ Std.DTreeMap.Internal.Impl.Tree.mk (Std.DTreeMap.Internal.Impl.balanceLErase k'' v'' ℓ r'' (Std.DTreeMap.Internal.Impl.glue._proof_10 szl k' v' l' r' hl szr k'' v'' l'' r'' hr ℓ hℓ₁) (Std.DTreeMap.Internal.Impl.glue._proof_6 szl k' v' l' r' hl szr k'' v'' l'' r'' hr) (Std.DTreeMap.Internal.Impl.link._proof_21 szl k' v' l' r' hl szr k'' v'' l'' r'' hr h₁ ℓ hℓ₂)) (Std.DTreeMap.Internal.Impl.link._proof_23 szl k' v' l' r' hl szr k'' v'' l'' r'' hr h₁ ℓ hℓ₁ hℓ₂) (Std.DTreeMap.Internal.Impl.link._proof_26 szl k' v' l' r' hl szr k'' v'' l'' r'' hr h₁ ℓ hℓ₁ hℓ₂)) fun h₁ ↦ dite (LT.lt (HMul.hMul Std.DTreeMap.Internal.delta szr) szl) (fun h₂ ↦ Std.DTreeMap.Internal.Impl.link.match_3 r' szr k'' v'' l'' r'' (fun x ↦ Std.DTreeMap.Internal.Impl.Tree.{u, v} α β (HAdd.hAdd (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner szl k' v' l' r')) (OfNat.ofNat 1)) (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner szr k'' v'' l'' r'')))) (Std.DTreeMap.Internal.Impl.link._unary k v (PSigma.mk r' (PSigma.mk (Std.DTreeMap.Internal.Impl.inner szr k'' v'' l'' r'') (PSigma.mk (Std.DTreeMap.Internal.Impl.glue._proof_16 szl k' v' l' r' hl szr k'' v'' l'' r'' hr) (Std.DTreeMap.Internal.Impl.link._proof_28 szl k' v' l' r' hl szr k'' v'' l'' r'' hr))))) fun ℓ hℓ₁ hℓ₂ ↦ Std.DTreeMap.Internal.Impl.Tree.mk (Std.DTreeMap.Internal.Impl.balanceRErase k' v' l' ℓ (Std.DTreeMap.Internal.Impl.glue._proof_14 szl k' v' l' r' hl szr k'' v'' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_10 szl k' v' l' r' hl szr k'' v'' l'' r'' hr ℓ hℓ₁) (Std.DTreeMap.Internal.Impl.link._proof_31 szl k' v' l' r' hl szr k'' v'' l'' r'' hr h₁ h₂ ℓ hℓ₂)) (Std.DTreeMap.Internal.Impl.link._proof_33 szl k' v' l' r' hl szr k'' v'' l'' r'' hr h₁ h₂ ℓ hℓ₁ hℓ₂) (Std.DTreeMap.Internal.Impl.link._proof_36 szl k' v' l' r' hl szr k'' v'' l'' r'' hr h₁ h₂ ℓ hℓ₁ hℓ₂)) fun h₂ ↦ Std.DTreeMap.Internal.Impl.Tree.mk (Std.DTreeMap.Internal.Impl.inner (HAdd.hAdd (HAdd.hAdd szl (OfNat.ofNat 1)) szr) k v (Std.DTreeMap.Internal.Impl.inner szl k' v' l' r') (Std.DTreeMap.Internal.Impl.inner szr k'' v'' l'' r'')) (Eq.ndrec (Std.DTreeMap.Internal.Impl.link._proof_39 k v szl k' v' l' r' hl szr k'' v'' l'' r'' hr h₁ h₂) (id (Eq.refl (Std.DTreeMap.Internal.Impl.inner (HAdd.hAdd (HAdd.hAdd szl (OfNat.ofNat 1)) szr) k v (Std.DTreeMap.Internal.Impl.inner szl k' v' l' r') (Std.DTreeMap.Internal.Impl.inner szr k'' v'' l'' r''))))) (Eq.ndrec (Std.DTreeMap.Internal.Impl.link._proof_41 k v szl k' v' l' r' szr k'' v'' l'' r'') (id (Eq.refl (Std.DTreeMap.Internal.Impl.inner (HAdd.hAdd (HAdd.hAdd szl (OfNat.ofNat 1)) szr) k v (Std.DTreeMap.Internal.Impl.inner szl k' v' l' r') (Std.DTreeMap.Internal.Impl.inner szr k'' v'' l'' r'')))))) snd) snd) _x))) (Eq.refl (PSigma.rec (fun fst snd ↦ PSigma.rec (fun fst snd ↦ PSigma.rec (fun fst snd ↦ Std.DTreeMap.Internal.Impl.insertMin.match_3 (fun l hl ↦ Std.DTreeMap.Internal.Impl.Tree.{u, v} α β (HAdd.hAdd (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size l) (OfNat.ofNat 1)) (Std.DTreeMap.Internal.Impl.size fst))) fst fst (fun hr ↦ Std.DTreeMap.Internal.Impl.Tree.mk (Std.DTreeMap.Internal.Impl.Tree.impl (Std.DTreeMap.Internal.Impl.insertMin k v fst (Std.DTreeMap.Internal.Impl.link._proof_6 fst snd))) (Std.DTreeMap.Internal.Impl.link._proof_8 k v fst snd) (Std.DTreeMap.Internal.Impl.link._proof_10 k v fst snd)) fun sz k' v' l' r' hr ↦ Std.DTreeMap.Internal.Impl.insertMin.match_3 (fun r hr ↦ Std.DTreeMap.Internal.Impl.Tree.{u, v} α β (HAdd.hAdd (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner sz k' v' l' r')) (OfNat.ofNat 1)) (Std.DTreeMap.Internal.Impl.size r))) fst snd (fun hr ↦ Std.DTreeMap.Internal.Impl.Tree.mk (Std.DTreeMap.Internal.Impl.Tree.impl (Std.DTreeMap.Internal.Impl.insertMax k v (Std.DTreeMap.Internal.Impl.inner sz k' v' l' r') (Std.DTreeMap.Internal.Impl.link._proof_12 sz k' v' l' r' hr))) (Std.DTreeMap.Internal.Impl.link._proof_14 k v sz k' v' l' r' hr) (Std.DTreeMap.Internal.Impl.link._proof_16 k v sz k' v' l' r' hr)) fun sz k' v' l' r' hr ↦ dite (LT.lt (HMul.hMul Std.DTreeMap.Internal.delta sz) sz) (fun h₁ ↦ Std.DTreeMap.Internal.Impl.link.match_1 sz k' v' l' r' l' (fun x ↦ Std.DTreeMap.Internal.Impl.Tree.{u, v} α β (HAdd.hAdd (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner sz k' v' l' r')) (OfNat.ofNat 1)) (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner sz k' v' l' r')))) (Std.DTreeMap.Internal.Impl.link._unary k v (PSigma.mk (Std.DTreeMap.Internal.Impl.inner sz k' v' l' r') (PSigma.mk l' (PSigma.mk (Std.DTreeMap.Internal.Impl.link._proof_18 sz k' v' l' r' hr sz k' v' l' r' hr) (Std.DTreeMap.Internal.Impl.glue._proof_4 sz k' v' l' r' hr sz k' v' l' r' hr))))) fun ℓ hℓ₁ hℓ₂ ↦ Std.DTreeMap.Internal.Impl.Tree.mk (Std.DTreeMap.Internal.Impl.balanceLErase k' v' ℓ r' (Std.DTreeMap.Internal.Impl.glue._proof_10 sz k' v' l' r' hr sz k' v' l' r' hr ℓ hℓ₁) (Std.DTreeMap.Internal.Impl.glue._proof_6 sz k' v' l' r' hr sz k' v' l' r' hr) (Std.DTreeMap.Internal.Impl.link._proof_21 sz k' v' l' r' hr sz k' v' l' r' hr h₁ ℓ hℓ₂)) (Std.DTreeMap.Internal.Impl.link._proof_23 sz k' v' l' r' hr sz k' v' l' r' hr h₁ ℓ hℓ₁ hℓ₂) (Std.DTreeMap.Internal.Impl.link._proof_26 sz k' v' l' r' hr sz k' v' l' r' hr h₁ ℓ hℓ₁ hℓ₂)) fun h₁ ↦ dite (LT.lt (HMul.hMul Std.DTreeMap.Internal.delta sz) sz) (fun h₂ ↦ Std.DTreeMap.Internal.Impl.link.match_3 r' sz k' v' l' r' (fun x ↦ Std.DTreeMap.Internal.Impl.Tree.{u, v} α β (HAdd.hAdd (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner sz k' v' l' r')) (OfNat.ofNat 1)) (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner sz k' v' l' r')))) (Std.DTreeMap.Internal.Impl.link._unary k v (PSigma.mk r' (PSigma.mk (Std.DTreeMap.Internal.Impl.inner sz k' v' l' r') (PSigma.mk (Std.DTreeMap.Internal.Impl.glue._proof_16 sz k' v' l' r' hr sz k' v' l' r' hr) (Std.DTreeMap.Internal.Impl.link._proof_28 sz k' v' l' r' hr sz k' v' l' r' hr))))) fun ℓ hℓ₁ hℓ₂ ↦ Std.DTreeMap.Internal.Impl.Tree.mk (Std.DTreeMap.Internal.Impl.balanceRErase k' v' l' ℓ (Std.DTreeMap.Internal.Impl.glue._proof_14 sz k' v' l' r' hr sz k' v' l' r' hr) (Std.DTreeMap.Internal.Impl.glue._proof_10 sz k' v' l' r' hr sz k' v' l' r' hr ℓ hℓ₁) (Std.DTreeMap.Internal.Impl.link._proof_31 sz k' v' l' r' hr sz k' v' l' r' hr h₁ h₂ ℓ hℓ₂)) (Std.DTreeMap.Internal.Impl.link._proof_33 sz k' v' l' r' hr sz k' v' l' r' hr h₁ h₂ ℓ hℓ₁ hℓ₂) (Std.DTreeMap.Internal.Impl.link._proof_36 sz k' v' l' r' hr sz k' v' l' r' hr h₁ h₂ ℓ hℓ₁ hℓ₂)) fun h₂ ↦ Std.DTreeMap.Internal.Impl.Tree.mk (Std.DTreeMap.Internal.Impl.inner (HAdd.hAdd (HAdd.hAdd sz (OfNat.ofNat 1)) sz) k v (Std.DTreeMap.Internal.Impl.inner sz k' v' l' r') (Std.DTreeMap.Internal.Impl.inner sz k' v' l' r')) (Std.DTreeMap.Internal.Impl.link._unary._proof_3 k v sz k' v' l' r' hr sz k' v' l' r' hr h₁ h₂) (Std.DTreeMap.Internal.Impl.link._unary._proof_4 k v sz k' v' l' r' sz k' v' l' r')) snd) snd) _x))))
has type
  (size : Nat) → (k : α) → (v : β k) → (l : Std.DTreeMap.Internal.Impl.{u, v} α β) → (r : Std.DTreeMap.Internal.Impl.{u, v} α β) → (fun x ↦ (hr : Std.DTreeMap.Internal.Impl.Balanced x) → (fun r hr ↦ Std.DTreeMap.Internal.Impl.Tree.{u, v} α β (HAdd.hAdd (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k v l r)) (OfNat.ofNat 1)) (Std.DTreeMap.Internal.Impl.size r))) x hr) l → (fun x ↦ (hr : Std.DTreeMap.Internal.Impl.Balanced x) → (fun r hr ↦ Std.DTreeMap.Internal.Impl.Tree.{u, v} α β (HAdd.hAdd (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k v l r)) (OfNat.ofNat 1)) (Std.DTreeMap.Internal.Impl.size r))) x hr) r → Std.DTreeMap.Internal.Impl.Balanced (Std.DTreeMap.Internal.Impl.inner size k v l r) → Std.DTreeMap.Internal.Impl.Tree.{u, v} α β (HAdd.hAdd (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k v l r)) (OfNat.ofNat 1)) (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k v l r)))
but is expected to have type
  (size : Nat) → (k : α) → (v : β k) → (l : Std.DTreeMap.Internal.Impl.{u, v} α β) → (r : Std.DTreeMap.Internal.Impl.{u, v} α β) → (fun x ↦ (hr : Std.DTreeMap.Internal.Impl.Balanced x) → (fun r hr ↦ Std.DTreeMap.Internal.Impl.Tree.{u, v} α β (HAdd.hAdd (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k v l r)) (OfNat.ofNat 1)) (Std.DTreeMap.Internal.Impl.size r))) x hr) l → (fun x ↦ (hr : Std.DTreeMap.Internal.Impl.Balanced x) → (fun r hr ↦ Std.DTreeMap.Internal.Impl.Tree.{u, v} α β (HAdd.hAdd (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k v l r)) (OfNat.ofNat 1)) (Std.DTreeMap.Internal.Impl.size r))) x hr) r → (fun x ↦ (hr : Std.DTreeMap.Internal.Impl.Balanced x) → (fun r hr ↦ Std.DTreeMap.Internal.Impl.Tree.{u, v} α β (HAdd.hAdd (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k v l r)) (OfNat.ofNat 1)) (Std.DTreeMap.Internal.Impl.size r))) x hr) (Std.DTreeMap.Internal.Impl.inner size k v l r)
theorem Std.DTreeMap.Internal.Impl.link.eq_def.{u, v} : ∀ {α : Type u}, ∀ {β : α → Type v}, ∀ (k : α), ∀ (v : β k), ∀ (l : Std.DTreeMap.Internal.Impl.{u, v} α β), ∀ (r : Std.DTreeMap.Internal.Impl.{u, v} α β), ∀ (hl : Std.DTreeMap.Internal.Impl.Balanced l), ∀ (hr : Std.DTreeMap.Internal.Impl.Balanced r), Eq (Std.DTreeMap.Internal.Impl.link k v l r hl hr) (Std.DTreeMap.Internal.Impl.insertMin.match_3 (fun l hl ↦ Std.DTreeMap.Internal.Impl.Tree.{u, v} α β (HAdd.hAdd (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size l) (OfNat.ofNat 1)) (Std.DTreeMap.Internal.Impl.size r))) l hl (fun hl ↦ let d : Std.DTreeMap.Internal.Impl.Tree.{u, v} α β (HAdd.hAdd (OfNat.ofNat 1) (Std.DTreeMap.Internal.Impl.size r)) := Std.DTreeMap.Internal.Impl.insertMin k v r (Std.DTreeMap.Internal.Impl.link._proof_6 r hr)
Std.DTreeMap.Internal.Impl.Tree.mk (Std.DTreeMap.Internal.Impl.Tree.impl d) (Std.DTreeMap.Internal.Impl.link._proof_8 k v r hr) (Std.DTreeMap.Internal.Impl.link._proof_10 k v r hr)) fun szl k' v' l' r' hl ↦ Std.DTreeMap.Internal.Impl.insertMin.match_3 (fun r hr ↦ Std.DTreeMap.Internal.Impl.Tree.{u, v} α β (HAdd.hAdd (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner szl k' v' l' r')) (OfNat.ofNat 1)) (Std.DTreeMap.Internal.Impl.size r))) r hr (fun hr ↦ let d : Std.DTreeMap.Internal.Impl.Tree.{u, v} α β (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner szl k' v' l' r')) (OfNat.ofNat 1)) := Std.DTreeMap.Internal.Impl.insertMax k v (Std.DTreeMap.Internal.Impl.inner szl k' v' l' r') (Std.DTreeMap.Internal.Impl.link._proof_12 szl k' v' l' r' hl)
Std.DTreeMap.Internal.Impl.Tree.mk (Std.DTreeMap.Internal.Impl.Tree.impl d) (Std.DTreeMap.Internal.Impl.link._proof_14 k v szl k' v' l' r' hl) (Std.DTreeMap.Internal.Impl.link._proof_16 k v szl k' v' l' r' hl)) fun szr k'' v'' l'' r'' hr ↦ dite (LT.lt (HMul.hMul Std.DTreeMap.Internal.delta szl) szr) (fun h₁ ↦ Std.DTreeMap.Internal.Impl.link.match_1 szl k' v' l' r' l'' (fun x ↦ Std.DTreeMap.Internal.Impl.Tree.{u, v} α β (HAdd.hAdd (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner szl k' v' l' r')) (OfNat.ofNat 1)) (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner szr k'' v'' l'' r'')))) (Std.DTreeMap.Internal.Impl.link k v (Std.DTreeMap.Internal.Impl.inner szl k' v' l' r') l'' (Std.DTreeMap.Internal.Impl.link._proof_18 szl k' v' l' r' hl szr k'' v'' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_4 szl k' v' l' r' hl szr k'' v'' l'' r'' hr)) fun ℓ hℓ₁ hℓ₂ ↦ Std.DTreeMap.Internal.Impl.Tree.mk (Std.DTreeMap.Internal.Impl.balanceLErase k'' v'' ℓ r'' (Std.DTreeMap.Internal.Impl.glue._proof_10 szl k' v' l' r' hl szr k'' v'' l'' r'' hr ℓ hℓ₁) (Std.DTreeMap.Internal.Impl.glue._proof_6 szl k' v' l' r' hl szr k'' v'' l'' r'' hr) (Std.DTreeMap.Internal.Impl.link._proof_21 szl k' v' l' r' hl szr k'' v'' l'' r'' hr h₁ ℓ hℓ₂)) (Std.DTreeMap.Internal.Impl.link._proof_23 szl k' v' l' r' hl szr k'' v'' l'' r'' hr h₁ ℓ hℓ₁ hℓ₂) (Std.DTreeMap.Internal.Impl.link._proof_26 szl k' v' l' r' hl szr k'' v'' l'' r'' hr h₁ ℓ hℓ₁ hℓ₂)) fun h₁ ↦ dite (LT.lt (HMul.hMul Std.DTreeMap.Internal.delta szr) szl) (fun h₂ ↦ Std.DTreeMap.Internal.Impl.link.match_3 r' szr k'' v'' l'' r'' (fun x ↦ Std.DTreeMap.Internal.Impl.Tree.{u, v} α β (HAdd.hAdd (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner szl k' v' l' r')) (OfNat.ofNat 1)) (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner szr k'' v'' l'' r'')))) (Std.DTreeMap.Internal.Impl.link k v r' (Std.DTreeMap.Internal.Impl.inner szr k'' v'' l'' r'') (Std.DTreeMap.Internal.Impl.glue._proof_16 szl k' v' l' r' hl szr k'' v'' l'' r'' hr) (Std.DTreeMap.Internal.Impl.link._proof_28 szl k' v' l' r' hl szr k'' v'' l'' r'' hr)) fun ℓ hℓ₁ hℓ₂ ↦ Std.DTreeMap.Internal.Impl.Tree.mk (Std.DTreeMap.Internal.Impl.balanceRErase k' v' l' ℓ (Std.DTreeMap.Internal.Impl.glue._proof_14 szl k' v' l' r' hl szr k'' v'' l'' r'' hr) (Std.DTreeMap.Internal.Impl.glue._proof_10 szl k' v' l' r' hl szr k'' v'' l'' r'' hr ℓ hℓ₁) (Std.DTreeMap.Internal.Impl.link._proof_31 szl k' v' l' r' hl szr k'' v'' l'' r'' hr h₁ h₂ ℓ hℓ₂)) (Std.DTreeMap.Internal.Impl.link._proof_33 szl k' v' l' r' hl szr k'' v'' l'' r'' hr h₁ h₂ ℓ hℓ₁ hℓ₂) (Std.DTreeMap.Internal.Impl.link._proof_36 szl k' v' l' r' hl szr k'' v'' l'' r'' hr h₁ h₂ ℓ hℓ₁ hℓ₂)) fun h₂ ↦ Std.DTreeMap.Internal.Impl.Tree.mk (Std.DTreeMap.Internal.Impl.inner (HAdd.hAdd (HAdd.hAdd szl (OfNat.ofNat 1)) szr) k v (Std.DTreeMap.Internal.Impl.inner szl k' v' l' r') (Std.DTreeMap.Internal.Impl.inner szr k'' v'' l'' r'')) (Std.DTreeMap.Internal.Impl.link._proof_39 k v szl k' v' l' r' hl szr k'' v'' l'' r'' hr h₁ h₂) (Std.DTreeMap.Internal.Impl.link._proof_41 k v szl k' v' l' r' szr k'' v'' l'' r'')) := fun {α β} k v l r hl hr ↦ id (Std.DTreeMap.Internal.Impl.link._unary.eq_def k v (PSigma.mk l (PSigma.mk r (PSigma.mk hl hr))))
has type
  (size : Nat) → (k : α) → (v : β k) → (l : Std.DTreeMap.Internal.Impl.{u, v} α β) → (r : Std.DTreeMap.Internal.Impl.{u, v} α β) → (fun x ↦ (hr : Std.DTreeMap.Internal.Impl.Balanced x) → (fun r hr ↦ Std.DTreeMap.Internal.Impl.Tree.{u, v} α β (HAdd.hAdd (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k v l r)) (OfNat.ofNat 1)) (Std.DTreeMap.Internal.Impl.size r))) x hr) l → (fun x ↦ (hr : Std.DTreeMap.Internal.Impl.Balanced x) → (fun r hr ↦ Std.DTreeMap.Internal.Impl.Tree.{u, v} α β (HAdd.hAdd (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k v l r)) (OfNat.ofNat 1)) (Std.DTreeMap.Internal.Impl.size r))) x hr) r → Std.DTreeMap.Internal.Impl.Balanced (Std.DTreeMap.Internal.Impl.inner size k v l r) → Std.DTreeMap.Internal.Impl.Tree.{u, v} α β (HAdd.hAdd (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k v l r)) (OfNat.ofNat 1)) (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k v l r)))
but is expected to have type
  (size : Nat) → (k : α) → (v : β k) → (l : Std.DTreeMap.Internal.Impl.{u, v} α β) → (r : Std.DTreeMap.Internal.Impl.{u, v} α β) → (fun x ↦ (hr : Std.DTreeMap.Internal.Impl.Balanced x) → (fun r hr ↦ Std.DTreeMap.Internal.Impl.Tree.{u, v} α β (HAdd.hAdd (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k v l r)) (OfNat.ofNat 1)) (Std.DTreeMap.Internal.Impl.size r))) x hr) l → (fun x ↦ (hr : Std.DTreeMap.Internal.Impl.Balanced x) → (fun r hr ↦ Std.DTreeMap.Internal.Impl.Tree.{u, v} α β (HAdd.hAdd (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k v l r)) (OfNat.ofNat 1)) (Std.DTreeMap.Internal.Impl.size r))) x hr) r → (fun x ↦ (hr : Std.DTreeMap.Internal.Impl.Balanced x) → (fun r hr ↦ Std.DTreeMap.Internal.Impl.Tree.{u, v} α β (HAdd.hAdd (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k v l r)) (OfNat.ofNat 1)) (Std.DTreeMap.Internal.Impl.size r))) x hr) (Std.DTreeMap.Internal.Impl.inner size k v l r)
theorem Std.DTreeMap.Internal.Impl.toListModel_insertMin.{u, v} : ∀ {α : Type u}, ∀ {β : α → Type v}, ∀ [inst : Ord.{u} α], ∀ {k : α}, ∀ {v : β k}, ∀ {t : Std.DTreeMap.Internal.Impl.{u, v} α β}, ∀ {h : Std.DTreeMap.Internal.Impl.Balanced t}, Eq (Std.DTreeMap.Internal.Impl.toListModel (Std.DTreeMap.Internal.Impl.Tree.impl (Std.DTreeMap.Internal.Impl.insertMin k v t h))) (List.cons (Sigma.mk k v) (Std.DTreeMap.Internal.Impl.toListModel t)) := fun {α β} [inst : Ord.{u} #1] {k v t h} ↦ Std.DTreeMap.Internal.Impl.brecOn t (fun {t} f {h} ↦ _private.Std.Data.DTreeMap.Internal.WF.Lemmas.0.Std.DTreeMap.Internal.Impl.toListModel_insertMin.match_1_1 (fun t {h} ↦ ∀ (x : Std.DTreeMap.Internal.Impl.below t), Eq (Std.DTreeMap.Internal.Impl.toListModel (Std.DTreeMap.Internal.Impl.Tree.impl (Std.DTreeMap.Internal.Impl.insertMin k v t h))) (List.cons (Sigma.mk k v) (Std.DTreeMap.Internal.Impl.toListModel t))) t h (fun h x ↦ Eq.refl (Std.DTreeMap.Internal.Impl.toListModel (Std.DTreeMap.Internal.Impl.Tree.impl (Std.DTreeMap.Internal.Impl.insertMin k v (Std.DTreeMap.Internal.Impl.leaf) h)))) (fun size k v l r h x ↦ Eq.mpr (id (congrArg (fun _a ↦ Eq (Std.DTreeMap.Internal.Impl.toListModel (Std.DTreeMap.Internal.Impl.Tree.impl _a)) (List.cons (Sigma.mk k v) (Std.DTreeMap.Internal.Impl.toListModel (Std.DTreeMap.Internal.Impl.inner size k v l r)))) (Std.DTreeMap.Internal.Impl.insertMin.eq_2 k v size k v l r h))) (of_eq_true (Eq.trans (congrFun' (congrArg (Eq) (Eq.trans (Std.DTreeMap.Internal.Impl.toListModel_balanceL) (congrFun' (congrArg (HAppend.hAppend) (x.fst.fst (Std.DTreeMap.Internal.Impl.minView._proof_9 size k v l r h))) (List.cons (Sigma.mk k v) (Std.DTreeMap.Internal.Impl.toListModel r))))) (List.cons (Sigma.mk k v) (HAppend.hAppend (Std.DTreeMap.Internal.Impl.toListModel l) (List.cons (Sigma.mk k v) (Std.DTreeMap.Internal.Impl.toListModel r))))) (eq_self (List.cons (Sigma.mk k v) (HAppend.hAppend (Std.DTreeMap.Internal.Impl.toListModel l) (List.cons (Sigma.mk k v) (Std.DTreeMap.Internal.Impl.toListModel r)))))))) f) h
has type
  (size : Nat) → (k : α) → (v : β k) → (l : Std.DTreeMap.Internal.Impl.{u, v} α β) → (r : Std.DTreeMap.Internal.Impl.{u, v} α β) → (fun x ↦ (hlb : Std.DTreeMap.Internal.Impl.Balanced x) → (hlr : Std.DTreeMap.Internal.Impl.BalanceLPrecond (Std.DTreeMap.Internal.Impl.size x) (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k v l r))) → (fun l hlb hlr ↦ Std.DTreeMap.Internal.Impl.{u, v} α β) x hlb hlr) l → (fun x ↦ (hlb : Std.DTreeMap.Internal.Impl.Balanced x) → (hlr : Std.DTreeMap.Internal.Impl.BalanceLPrecond (Std.DTreeMap.Internal.Impl.size x) (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k v l r))) → (fun l hlb hlr ↦ Std.DTreeMap.Internal.Impl.{u, v} α β) x hlb hlr) r → Std.DTreeMap.Internal.Impl.Balanced (Std.DTreeMap.Internal.Impl.inner size k v l r) → Std.DTreeMap.Internal.Impl.BalanceLPrecond (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k v l r)) (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k v l r)) → Std.DTreeMap.Internal.Impl.{u, v} α β
but is expected to have type
  (size : Nat) → (k : α) → (v : β k) → (l : Std.DTreeMap.Internal.Impl.{u, v} α β) → (r : Std.DTreeMap.Internal.Impl.{u, v} α β) → (fun x ↦ (hlb : Std.DTreeMap.Internal.Impl.Balanced x) → (hlr : Std.DTreeMap.Internal.Impl.BalanceLPrecond (Std.DTreeMap.Internal.Impl.size x) (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k v l r))) → (fun l hlb hlr ↦ Std.DTreeMap.Internal.Impl.{u, v} α β) x hlb hlr) l → (fun x ↦ (hlb : Std.DTreeMap.Internal.Impl.Balanced x) → (hlr : Std.DTreeMap.Internal.Impl.BalanceLPrecond (Std.DTreeMap.Internal.Impl.size x) (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k v l r))) → (fun l hlb hlr ↦ Std.DTreeMap.Internal.Impl.{u, v} α β) x hlb hlr) r → (fun x ↦ (hlb : Std.DTreeMap.Internal.Impl.Balanced x) → (hlr : Std.DTreeMap.Internal.Impl.BalanceLPrecond (Std.DTreeMap.Internal.Impl.size x) (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k v l r))) → (fun l hlb hlr ↦ Std.DTreeMap.Internal.Impl.{u, v} α β) x hlb hlr) (Std.DTreeMap.Internal.Impl.inner size k v l r)
theorem Std.DTreeMap.Internal.Impl.toListModel_insertMax.{u, v} : ∀ {α : Type u}, ∀ {β : α → Type v}, ∀ [inst : Ord.{u} α], ∀ {k : α}, ∀ {v : β k}, ∀ {t : Std.DTreeMap.Internal.Impl.{u, v} α β}, ∀ {h : Std.DTreeMap.Internal.Impl.Balanced t}, Eq (Std.DTreeMap.Internal.Impl.toListModel (Std.DTreeMap.Internal.Impl.Tree.impl (Std.DTreeMap.Internal.Impl.insertMax k v t h))) (HAppend.hAppend (Std.DTreeMap.Internal.Impl.toListModel t) (List.cons (Sigma.mk k v) (List.nil))) := fun {α β} [inst : Ord.{u} #1] {k v t h} ↦ Std.DTreeMap.Internal.Impl.brecOn t (fun {t} f {h} ↦ _private.Std.Data.DTreeMap.Internal.WF.Lemmas.0.Std.DTreeMap.Internal.Impl.toListModel_insertMax.match_1_1 (fun t {h} ↦ ∀ (x : Std.DTreeMap.Internal.Impl.below t), Eq (Std.DTreeMap.Internal.Impl.toListModel (Std.DTreeMap.Internal.Impl.Tree.impl (Std.DTreeMap.Internal.Impl.insertMax k v t h))) (HAppend.hAppend (Std.DTreeMap.Internal.Impl.toListModel t) (List.cons (Sigma.mk k v) (List.nil)))) t h (fun h x ↦ Eq.refl (Std.DTreeMap.Internal.Impl.toListModel (Std.DTreeMap.Internal.Impl.Tree.impl (Std.DTreeMap.Internal.Impl.insertMax k v (Std.DTreeMap.Internal.Impl.leaf) h)))) (fun size k v l r h x ↦ Eq.mpr (id (congrArg (fun _a ↦ Eq (Std.DTreeMap.Internal.Impl.toListModel (Std.DTreeMap.Internal.Impl.Tree.impl _a)) (HAppend.hAppend (Std.DTreeMap.Internal.Impl.toListModel (Std.DTreeMap.Internal.Impl.inner size k v l r)) (List.cons (Sigma.mk k v) (List.nil)))) (Std.DTreeMap.Internal.Impl.insertMax.eq_2 k v size k v l r h))) (of_eq_true (Eq.trans (congr (congrArg (Eq) (Eq.trans (Std.DTreeMap.Internal.Impl.toListModel_balanceR) (congrArg (HAppend.hAppend (Std.DTreeMap.Internal.Impl.toListModel l)) (congrArg (List.cons (Sigma.mk k v)) (x.snd.fst (Std.DTreeMap.Internal.Impl.minView._proof_11 size k v l r h)))))) (List.append_assoc (Std.DTreeMap.Internal.Impl.toListModel l) (List.cons (Sigma.mk k v) (Std.DTreeMap.Internal.Impl.toListModel r)) (List.cons (Sigma.mk k v) (List.nil)))) (eq_self (HAppend.hAppend (Std.DTreeMap.Internal.Impl.toListModel l) (List.cons (Sigma.mk k v) (HAppend.hAppend (Std.DTreeMap.Internal.Impl.toListModel r) (List.cons (Sigma.mk k v) (List.nil))))))))) f) h
has type
  (size : Nat) → (k : α) → (v : β k) → (l : Std.DTreeMap.Internal.Impl.{u, v} α β) → (r : Std.DTreeMap.Internal.Impl.{u, v} α β) → (fun x ↦ (hlb : Std.DTreeMap.Internal.Impl.Balanced x) → (hlr : Std.DTreeMap.Internal.Impl.BalanceLPrecond (Std.DTreeMap.Internal.Impl.size x) (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k v l r))) → (fun l hlb hlr ↦ Std.DTreeMap.Internal.Impl.{u, v} α β) x hlb hlr) l → (fun x ↦ (hlb : Std.DTreeMap.Internal.Impl.Balanced x) → (hlr : Std.DTreeMap.Internal.Impl.BalanceLPrecond (Std.DTreeMap.Internal.Impl.size x) (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k v l r))) → (fun l hlb hlr ↦ Std.DTreeMap.Internal.Impl.{u, v} α β) x hlb hlr) r → Std.DTreeMap.Internal.Impl.Balanced (Std.DTreeMap.Internal.Impl.inner size k v l r) → Std.DTreeMap.Internal.Impl.BalanceLPrecond (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k v l r)) (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k v l r)) → Std.DTreeMap.Internal.Impl.{u, v} α β
but is expected to have type
  (size : Nat) → (k : α) → (v : β k) → (l : Std.DTreeMap.Internal.Impl.{u, v} α β) → (r : Std.DTreeMap.Internal.Impl.{u, v} α β) → (fun x ↦ (hlb : Std.DTreeMap.Internal.Impl.Balanced x) → (hlr : Std.DTreeMap.Internal.Impl.BalanceLPrecond (Std.DTreeMap.Internal.Impl.size x) (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k v l r))) → (fun l hlb hlr ↦ Std.DTreeMap.Internal.Impl.{u, v} α β) x hlb hlr) l → (fun x ↦ (hlb : Std.DTreeMap.Internal.Impl.Balanced x) → (hlr : Std.DTreeMap.Internal.Impl.BalanceLPrecond (Std.DTreeMap.Internal.Impl.size x) (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k v l r))) → (fun l hlb hlr ↦ Std.DTreeMap.Internal.Impl.{u, v} α β) x hlb hlr) r → (fun x ↦ (hlb : Std.DTreeMap.Internal.Impl.Balanced x) → (hlr : Std.DTreeMap.Internal.Impl.BalanceLPrecond (Std.DTreeMap.Internal.Impl.size x) (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k v l r))) → (fun l hlb hlr ↦ Std.DTreeMap.Internal.Impl.{u, v} α β) x hlb hlr) (Std.DTreeMap.Internal.Impl.inner size k v l r)
theorem Std.DTreeMap.Internal.Impl.alter_eq_alterₘ.{u, v} : ∀ {α : Type u}, ∀ {β : α → Type v}, ∀ [inst : Ord.{u} α], ∀ [inst : Std.TransOrd α], ∀ [inst : Std.LawfulEqOrd α], ∀ {t : Std.DTreeMap.Internal.Impl.{u, v} α β}, ∀ {a : α}, ∀ {f : Option.{v} (β a) → Option.{v} (β a)}, ∀ (htb : Std.DTreeMap.Internal.Impl.Balanced t), Std.DTreeMap.Internal.Impl.Ordered t → Eq (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.alter a f t htb)) (Std.DTreeMap.Internal.Impl.alterₘ a f t htb) := fun {α β} [inst : Ord.{u} #1] [inst : Std.TransOrd #2] [inst : Std.LawfulEqOrd #3] {t a f} htb hto ↦ Eq.mpr (id (congrArg (fun _a ↦ Eq (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.alter a f t htb)) _a) (Std.DTreeMap.Internal.Impl.alterₘ.eq_1 a f t htb))) (Std.DTreeMap.Internal.Impl.rec (fun sz k v l r ihl ihr htb hto ↦ Eq.mpr (id (congrArg (fun _a ↦ Eq (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl _a) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) (Std.DTreeMap.Internal.Impl.inner sz k v l r) htb))) (Std.DTreeMap.Internal.Impl.alter.eq_2 a f sz k v l r htb))) (Eq.mpr (id (congrArg (fun _a ↦ Eq (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.alter.match_3.{(max u v) + 1} (fun x ↦ Std.DTreeMap.Internal.Impl.SizedBalancedTree.{u, v} α β (HSub.hSub (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner sz k v l r)) (OfNat.ofNat 1)) (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner sz k v l r)) (OfNat.ofNat 1))) (Ord.compare a k) (fun h ↦ Std.DTreeMap.Internal.Impl.alter.match_1 l (fun x ↦ Std.DTreeMap.Internal.Impl.SizedBalancedTree.{u, v} α β (HSub.hSub (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner sz k v l r)) (OfNat.ofNat 1)) (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner sz k v l r)) (OfNat.ofNat 1))) (Std.DTreeMap.Internal.Impl.alter a f l (Std.DTreeMap.Internal.Impl.minView._proof_9 sz k v l r htb)) fun d hd hd'₁ hd'₂ ↦ Std.DTreeMap.Internal.Impl.SizedBalancedTree.mk (Std.DTreeMap.Internal.Impl.balance k v d r (Std.DTreeMap.Internal.Impl.minView._proof_15 sz k v l r htb d hd) (Std.DTreeMap.Internal.Impl.minView._proof_11 sz k v l r htb) (Std.DTreeMap.Internal.Impl.alter._proof_1 sz k v l r htb d hd'₁ hd'₂)) (Std.DTreeMap.Internal.Impl.alter._proof_13 sz k v l r htb d hd hd'₁ hd'₂) (Std.DTreeMap.Internal.Impl.alter._proof_15 sz k v l r htb d hd hd'₁ hd'₂) (Std.DTreeMap.Internal.Impl.alter._proof_18 sz k v l r htb d hd hd'₁ hd'₂)) (fun h ↦ Std.DTreeMap.Internal.Impl.alter.match_1 r (fun x ↦ Std.DTreeMap.Internal.Impl.SizedBalancedTree.{u, v} α β (HSub.hSub (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner sz k v l r)) (OfNat.ofNat 1)) (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner sz k v l r)) (OfNat.ofNat 1))) (Std.DTreeMap.Internal.Impl.alter a f r (Std.DTreeMap.Internal.Impl.minView._proof_11 sz k v l r htb)) fun d hd hd'₁ hd'₂ ↦ Std.DTreeMap.Internal.Impl.SizedBalancedTree.mk (Std.DTreeMap.Internal.Impl.balance k v l d (Std.DTreeMap.Internal.Impl.minView._proof_9 sz k v l r htb) (Std.DTreeMap.Internal.Impl.minView._proof_15 sz k v l r htb d hd) (Std.DTreeMap.Internal.Impl.alter._proof_2 sz k v l r htb d hd'₁ hd'₂)) (Std.DTreeMap.Internal.Impl.alter._proof_20 sz k v l r htb d hd hd'₁ hd'₂) (Std.DTreeMap.Internal.Impl.alter._proof_22 sz k v l r htb d hd hd'₁ hd'₂) (Std.DTreeMap.Internal.Impl.alter._proof_25 sz k v l r htb d hd hd'₁ hd'₂)) fun h ↦ Std.DTreeMap.Internal.Impl.«getThenInsertIfNew?».match_1 a (fun x ↦ Std.DTreeMap.Internal.Impl.SizedBalancedTree.{u, v} α β (HSub.hSub (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner sz k v l r)) (OfNat.ofNat 1)) (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner sz k v l r)) (OfNat.ofNat 1))) (f (Option.some (cast (Std.DTreeMap.Internal.Impl.alter._proof_3 a k h) v))) (fun _ ↦ Std.DTreeMap.Internal.Impl.SizedBalancedTree.mk (Std.DTreeMap.Internal.Impl.glue l r (Std.DTreeMap.Internal.Impl.minView._proof_9 sz k v l r htb) (Std.DTreeMap.Internal.Impl.minView._proof_11 sz k v l r htb) (Std.DTreeMap.Internal.Impl.minView._proof_13 sz k v l r htb)) (Std.DTreeMap.Internal.Impl.erase._proof_34 sz k v l r htb) (Std.DTreeMap.Internal.Impl.erase._proof_36 sz k v l r htb) (Std.DTreeMap.Internal.Impl.alter._proof_28 sz k v l r htb)) fun v ↦ Std.DTreeMap.Internal.Impl.SizedBalancedTree.mk (Std.DTreeMap.Internal.Impl.inner sz a v l r) (Std.DTreeMap.Internal.Impl.alter._proof_30 a sz k v l r htb v) (Std.DTreeMap.Internal.Impl.alter._proof_33 a sz k v l r htb v) (Std.DTreeMap.Internal.Impl.alter._proof_35 a sz k v l r htb v))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl _a)) (Std.DTreeMap.Internal.Impl.updateCell.eq_2 a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) sz k v l r htb))) (_private.Std.Data.DTreeMap.Internal.WF.Lemmas.0.Std.DTreeMap.Internal.Impl.alter.match_3.splitter.{0} (fun x ↦ Eq (Ord.compare a k) x → Eq (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.alter.match_3.{(max u v) + 1} (fun x ↦ Std.DTreeMap.Internal.Impl.SizedBalancedTree.{u, v} α β (HSub.hSub (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner sz k v l r)) (OfNat.ofNat 1)) (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner sz k v l r)) (OfNat.ofNat 1))) (Ord.compare a k) (fun h ↦ Std.DTreeMap.Internal.Impl.alter.match_1 l (fun x ↦ Std.DTreeMap.Internal.Impl.SizedBalancedTree.{u, v} α β (HSub.hSub (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner sz k v l r)) (OfNat.ofNat 1)) (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner sz k v l r)) (OfNat.ofNat 1))) (Std.DTreeMap.Internal.Impl.alter a f l (Std.DTreeMap.Internal.Impl.minView._proof_9 sz k v l r htb)) fun d hd hd'₁ hd'₂ ↦ Std.DTreeMap.Internal.Impl.SizedBalancedTree.mk (Std.DTreeMap.Internal.Impl.balance k v d r (Std.DTreeMap.Internal.Impl.minView._proof_15 sz k v l r htb d hd) (Std.DTreeMap.Internal.Impl.minView._proof_11 sz k v l r htb) (Std.DTreeMap.Internal.Impl.alter._proof_1 sz k v l r htb d hd'₁ hd'₂)) (Std.DTreeMap.Internal.Impl.alter._proof_13 sz k v l r htb d hd hd'₁ hd'₂) (Std.DTreeMap.Internal.Impl.alter._proof_15 sz k v l r htb d hd hd'₁ hd'₂) (Std.DTreeMap.Internal.Impl.alter._proof_18 sz k v l r htb d hd hd'₁ hd'₂)) (fun h ↦ Std.DTreeMap.Internal.Impl.alter.match_1 r (fun x ↦ Std.DTreeMap.Internal.Impl.SizedBalancedTree.{u, v} α β (HSub.hSub (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner sz k v l r)) (OfNat.ofNat 1)) (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner sz k v l r)) (OfNat.ofNat 1))) (Std.DTreeMap.Internal.Impl.alter a f r (Std.DTreeMap.Internal.Impl.minView._proof_11 sz k v l r htb)) fun d hd hd'₁ hd'₂ ↦ Std.DTreeMap.Internal.Impl.SizedBalancedTree.mk (Std.DTreeMap.Internal.Impl.balance k v l d (Std.DTreeMap.Internal.Impl.minView._proof_9 sz k v l r htb) (Std.DTreeMap.Internal.Impl.minView._proof_15 sz k v l r htb d hd) (Std.DTreeMap.Internal.Impl.alter._proof_2 sz k v l r htb d hd'₁ hd'₂)) (Std.DTreeMap.Internal.Impl.alter._proof_20 sz k v l r htb d hd hd'₁ hd'₂) (Std.DTreeMap.Internal.Impl.alter._proof_22 sz k v l r htb d hd hd'₁ hd'₂) (Std.DTreeMap.Internal.Impl.alter._proof_25 sz k v l r htb d hd hd'₁ hd'₂)) fun h ↦ Std.DTreeMap.Internal.Impl.«getThenInsertIfNew?».match_1 a (fun x ↦ Std.DTreeMap.Internal.Impl.SizedBalancedTree.{u, v} α β (HSub.hSub (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner sz k v l r)) (OfNat.ofNat 1)) (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner sz k v l r)) (OfNat.ofNat 1))) (f (Option.some (cast (Std.DTreeMap.Internal.Impl.alter._proof_3 a k (Eq.trans (Eq.refl (Ord.compare a k)) h)) v))) (fun _ ↦ Std.DTreeMap.Internal.Impl.SizedBalancedTree.mk (Std.DTreeMap.Internal.Impl.glue l r (Std.DTreeMap.Internal.Impl.minView._proof_9 sz k v l r htb) (Std.DTreeMap.Internal.Impl.minView._proof_11 sz k v l r htb) (Std.DTreeMap.Internal.Impl.minView._proof_13 sz k v l r htb)) (Std.DTreeMap.Internal.Impl.erase._proof_34 sz k v l r htb) (Std.DTreeMap.Internal.Impl.erase._proof_36 sz k v l r htb) (Std.DTreeMap.Internal.Impl.alter._proof_28 sz k v l r htb)) fun v ↦ Std.DTreeMap.Internal.Impl.SizedBalancedTree.mk (Std.DTreeMap.Internal.Impl.inner sz a v l r) (Std.DTreeMap.Internal.Impl.alter._proof_30 a sz k v l r htb v) (Std.DTreeMap.Internal.Impl.alter._proof_33 a sz k v l r htb v) (Std.DTreeMap.Internal.Impl.alter._proof_35 a sz k v l r htb v))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.applyPartition.go.match_1.{(max u v) + 1} (fun x ↦ Std.DTreeMap.Internal.Impl.SizedBalancedTree.{u, v} α β (HSub.hSub (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner sz k v l r)) (OfNat.ofNat 1)) (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner sz k v l r)) (OfNat.ofNat 1))) (Ord.compare a k) (fun h ↦ Std.DTreeMap.Internal.Impl.updateCell.match_3 l (fun x ↦ Std.DTreeMap.Internal.Impl.SizedBalancedTree.{u, v} α β (HSub.hSub (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner sz k v l r)) (OfNat.ofNat 1)) (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner sz k v l r)) (OfNat.ofNat 1))) (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) l (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb)) fun newL h₁ h₂ h₃ ↦ Std.DTreeMap.Internal.Impl.SizedBalancedTree.mk (Std.DTreeMap.Internal.Impl.balance k v newL r (Std.DTreeMap.Internal.Impl.updateCell._proof_27 sz k v l r htb newL h₁) (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb) (Std.DTreeMap.Internal.Impl.updateCell._proof_32 sz k v l r htb newL h₂ h₃)) (Std.DTreeMap.Internal.Impl.updateCell._proof_34 sz k v l r htb newL h₁ h₂ h₃) (Std.DTreeMap.Internal.Impl.updateCell._proof_37 sz k v l r htb newL h₁ h₂ h₃) (Std.DTreeMap.Internal.Impl.updateCell._proof_40 sz k v l r htb newL h₁ h₂ h₃)) (fun h ↦ Std.DTreeMap.Internal.Impl.updateCell.match_1 (fun x ↦ Std.DTreeMap.Internal.Impl.SizedBalancedTree.{u, v} α β (HSub.hSub (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner sz k v l r)) (OfNat.ofNat 1)) (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner sz k v l r)) (OfNat.ofNat 1))) (Std.DTreeMap.Internal.Cell.inner (Std.DTreeMap.Internal.Cell.alter f (Std.DTreeMap.Internal.Cell.ofEq k v fun [Std.OrientedOrd α] ↦ h))) (fun _ ↦ Std.DTreeMap.Internal.Impl.SizedBalancedTree.mk (Std.DTreeMap.Internal.Impl.glue l r (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb) (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb) (Std.DTreeMap.Internal.Impl.updateCell._proof_42 sz k v l r htb)) (Std.DTreeMap.Internal.Impl.updateCell._proof_44 sz k v l r htb) (Std.DTreeMap.Internal.Impl.updateCell._proof_47 sz k v l r htb) (Std.DTreeMap.Internal.Impl.updateCell._proof_50 sz k v l r htb)) fun ky' y' ↦ Std.DTreeMap.Internal.Impl.SizedBalancedTree.mk (Std.DTreeMap.Internal.Impl.inner sz ky' y' l r) (Std.DTreeMap.Internal.Impl.updateCell._proof_52 sz k v l r htb ky' y') (Std.DTreeMap.Internal.Impl.updateCell._proof_55 sz k v l r htb ky' y') (Std.DTreeMap.Internal.Impl.updateCell._proof_58 sz k v l r htb ky' y')) fun h ↦ Std.DTreeMap.Internal.Impl.updateCell.match_3 r (fun x ↦ Std.DTreeMap.Internal.Impl.SizedBalancedTree.{u, v} α β (HSub.hSub (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner sz k v l r)) (OfNat.ofNat 1)) (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner sz k v l r)) (OfNat.ofNat 1))) (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) r (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb)) fun newR h₁ h₂ h₃ ↦ Std.DTreeMap.Internal.Impl.SizedBalancedTree.mk (Std.DTreeMap.Internal.Impl.balance k v l newR (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb) (Std.DTreeMap.Internal.Impl.updateCell._proof_27 sz k v l r htb newR h₁) (Std.DTreeMap.Internal.Impl.updateCell._proof_61 sz k v l r htb newR h₂ h₃)) (Std.DTreeMap.Internal.Impl.updateCell._proof_63 sz k v l r htb newR h₁ h₂ h₃) (Std.DTreeMap.Internal.Impl.updateCell._proof_66 sz k v l r htb newR h₁ h₂ h₃) (Std.DTreeMap.Internal.Impl.updateCell._proof_69 sz k v l r htb newR h₁ h₂ h₃)))) (Ord.compare a k) (fun h h ↦ Eq.ndrec (fun heq ↦ id (Eq.mpr (id (congrArg (Eq (Std.DTreeMap.Internal.Impl.balance k v (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.alter a f l (Std.DTreeMap.Internal.Impl.minView._proof_9 sz k v l r htb))) r (Std.DTreeMap.Internal.Impl.minView._proof_15 sz k v l r htb (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.alter a f l (Std.DTreeMap.Internal.Impl.minView._proof_9 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.balanced_impl (Std.DTreeMap.Internal.Impl.alter a f l (Std.DTreeMap.Internal.Impl.minView._proof_9 sz k v l r htb)))) (Std.DTreeMap.Internal.Impl.minView._proof_11 sz k v l r htb) (Std.DTreeMap.Internal.Impl.alter._proof_1 sz k v l r htb (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.alter a f l (Std.DTreeMap.Internal.Impl.minView._proof_9 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.lb_le_size_impl (Std.DTreeMap.Internal.Impl.alter a f l (Std.DTreeMap.Internal.Impl.minView._proof_9 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.size_impl_le_ub (Std.DTreeMap.Internal.Impl.alter a f l (Std.DTreeMap.Internal.Impl.minView._proof_9 sz k v l r htb)))))) (congrArg (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl) (Std.DTreeMap.Internal.Impl.applyPartition.go.match_1.congr heq (fun h ↦ Eq.refl (Std.DTreeMap.Internal.Impl.SizedBalancedTree.mk (Std.DTreeMap.Internal.Impl.balance k v (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) l (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb))) r (Std.DTreeMap.Internal.Impl.updateCell._proof_27 sz k v l r htb (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) l (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.balanced_impl (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) l (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb)))) (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb) (Std.DTreeMap.Internal.Impl.updateCell._proof_32 sz k v l r htb (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) l (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.lb_le_size_impl (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) l (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.size_impl_le_ub (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) l (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb))))) (Std.DTreeMap.Internal.Impl.updateCell._proof_34 sz k v l r htb (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) l (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.balanced_impl (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) l (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.lb_le_size_impl (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) l (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.size_impl_le_ub (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) l (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb)))) (Std.DTreeMap.Internal.Impl.updateCell._proof_37 sz k v l r htb (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) l (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.balanced_impl (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) l (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.lb_le_size_impl (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) l (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.size_impl_le_ub (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) l (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb)))) (Std.DTreeMap.Internal.Impl.updateCell._proof_40 sz k v l r htb (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) l (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.balanced_impl (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) l (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.lb_le_size_impl (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) l (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.size_impl_le_ub (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) l (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb)))))) (fun h ↦ Eq.refl (Std.DTreeMap.Internal.Impl.updateCell.match_1 (fun x ↦ Std.DTreeMap.Internal.Impl.SizedBalancedTree.{u, v} α β (HSub.hSub (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner sz k v l r)) (OfNat.ofNat 1)) (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner sz k v l r)) (OfNat.ofNat 1))) (Std.DTreeMap.Internal.Cell.inner (Std.DTreeMap.Internal.Cell.alter f (Std.DTreeMap.Internal.Cell.ofEq k v fun [Std.OrientedOrd α] ↦ Eq.trans heq h))) (fun _ ↦ Std.DTreeMap.Internal.Impl.SizedBalancedTree.mk (Std.DTreeMap.Internal.Impl.glue l r (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb) (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb) (Std.DTreeMap.Internal.Impl.updateCell._proof_42 sz k v l r htb)) (Std.DTreeMap.Internal.Impl.updateCell._proof_44 sz k v l r htb) (Std.DTreeMap.Internal.Impl.updateCell._proof_47 sz k v l r htb) (Std.DTreeMap.Internal.Impl.updateCell._proof_50 sz k v l r htb)) fun ky' y' ↦ Std.DTreeMap.Internal.Impl.SizedBalancedTree.mk (Std.DTreeMap.Internal.Impl.inner sz ky' y' l r) (Std.DTreeMap.Internal.Impl.updateCell._proof_52 sz k v l r htb ky' y') (Std.DTreeMap.Internal.Impl.updateCell._proof_55 sz k v l r htb ky' y') (Std.DTreeMap.Internal.Impl.updateCell._proof_58 sz k v l r htb ky' y'))) fun h ↦ Eq.refl (Std.DTreeMap.Internal.Impl.SizedBalancedTree.mk (Std.DTreeMap.Internal.Impl.balance k v l (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) r (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb) (Std.DTreeMap.Internal.Impl.updateCell._proof_27 sz k v l r htb (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) r (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.balanced_impl (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) r (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb)))) (Std.DTreeMap.Internal.Impl.updateCell._proof_61 sz k v l r htb (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) r (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.lb_le_size_impl (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) r (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.size_impl_le_ub (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) r (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb))))) (Std.DTreeMap.Internal.Impl.updateCell._proof_63 sz k v l r htb (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) r (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.balanced_impl (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) r (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.lb_le_size_impl (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) r (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.size_impl_le_ub (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) r (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb)))) (Std.DTreeMap.Internal.Impl.updateCell._proof_66 sz k v l r htb (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) r (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.balanced_impl (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) r (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.lb_le_size_impl (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) r (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.size_impl_le_ub (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) r (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb)))) (Std.DTreeMap.Internal.Impl.updateCell._proof_69 sz k v l r htb (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) r (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.balanced_impl (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) r (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.lb_le_size_impl (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) r (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.size_impl_le_ub (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) r (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb))))))))) (of_eq_true (Eq.trans (congrFun' (congrArg (Eq) (Std.DTreeMap.Internal.Impl.balance.congr_simp k v v (Eq.refl v) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.alter a f l (Std.DTreeMap.Internal.Impl.minView._proof_9 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) l (Std.DTreeMap.Internal.Impl.Balanced.left htb))) (ihl (Std.DTreeMap.Internal.Impl.Balanced.left htb) (Std.DTreeMap.Internal.Impl.Ordered.left hto)) r r (Eq.refl r) (Std.DTreeMap.Internal.Impl.minView._proof_15 sz k v l r htb (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.alter a f l (Std.DTreeMap.Internal.Impl.minView._proof_9 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.balanced_impl (Std.DTreeMap.Internal.Impl.alter a f l (Std.DTreeMap.Internal.Impl.minView._proof_9 sz k v l r htb)))) (Std.DTreeMap.Internal.Impl.minView._proof_11 sz k v l r htb) (Std.DTreeMap.Internal.Impl.alter._proof_1 sz k v l r htb (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.alter a f l (Std.DTreeMap.Internal.Impl.minView._proof_9 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.lb_le_size_impl (Std.DTreeMap.Internal.Impl.alter a f l (Std.DTreeMap.Internal.Impl.minView._proof_9 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.size_impl_le_ub (Std.DTreeMap.Internal.Impl.alter a f l (Std.DTreeMap.Internal.Impl.minView._proof_9 sz k v l r htb)))))) (Std.DTreeMap.Internal.Impl.balance k v (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) l (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb))) r (Std.DTreeMap.Internal.Impl.updateCell._proof_27 sz k v l r htb (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) l (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.balanced_impl (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) l (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb)))) (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb) (Std.DTreeMap.Internal.Impl.updateCell._proof_32 sz k v l r htb (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) l (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.lb_le_size_impl (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) l (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.size_impl_le_ub (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) l (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb)))))) (eq_self (Std.DTreeMap.Internal.Impl.balance k v (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) l (Std.DTreeMap.Internal.Impl.Balanced.left htb))) r (Eq.ndrec (Std.DTreeMap.Internal.Impl.minView._proof_15 sz k v l r htb (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.alter a f l (Std.DTreeMap.Internal.Impl.minView._proof_9 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.balanced_impl (Std.DTreeMap.Internal.Impl.alter a f l (Std.DTreeMap.Internal.Impl.minView._proof_9 sz k v l r htb)))) (ihl (Std.DTreeMap.Internal.Impl.Balanced.left htb) (Std.DTreeMap.Internal.Impl.Ordered.left hto))) (Std.DTreeMap.Internal.Impl.minView._proof_11 sz k v l r htb) (Eq.ndrec (Eq.ndrec (Std.DTreeMap.Internal.Impl.alter._proof_1 sz k v l r htb (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.alter a f l (Std.DTreeMap.Internal.Impl.minView._proof_9 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.lb_le_size_impl (Std.DTreeMap.Internal.Impl.alter a f l (Std.DTreeMap.Internal.Impl.minView._proof_9 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.size_impl_le_ub (Std.DTreeMap.Internal.Impl.alter a f l (Std.DTreeMap.Internal.Impl.minView._proof_9 sz k v l r htb)))) (Eq.refl r)) (ihl (Std.DTreeMap.Internal.Impl.Balanced.left htb) (Std.DTreeMap.Internal.Impl.Ordered.left hto))))))))) (Eq.symm h) (Eq.refl (Ord.compare a k))) (fun h h ↦ Eq.ndrec (fun heq ↦ id (Eq.mpr (id (congrArg (Eq (Std.DTreeMap.Internal.Impl.balance k v l (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.alter a f r (Std.DTreeMap.Internal.Impl.minView._proof_11 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.minView._proof_9 sz k v l r htb) (Std.DTreeMap.Internal.Impl.minView._proof_15 sz k v l r htb (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.alter a f r (Std.DTreeMap.Internal.Impl.minView._proof_11 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.balanced_impl (Std.DTreeMap.Internal.Impl.alter a f r (Std.DTreeMap.Internal.Impl.minView._proof_11 sz k v l r htb)))) (Std.DTreeMap.Internal.Impl.alter._proof_2 sz k v l r htb (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.alter a f r (Std.DTreeMap.Internal.Impl.minView._proof_11 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.lb_le_size_impl (Std.DTreeMap.Internal.Impl.alter a f r (Std.DTreeMap.Internal.Impl.minView._proof_11 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.size_impl_le_ub (Std.DTreeMap.Internal.Impl.alter a f r (Std.DTreeMap.Internal.Impl.minView._proof_11 sz k v l r htb)))))) (congrArg (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl) (Std.DTreeMap.Internal.Impl.applyPartition.go.match_1.congr heq (fun h ↦ Eq.refl (Std.DTreeMap.Internal.Impl.SizedBalancedTree.mk (Std.DTreeMap.Internal.Impl.balance k v (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) l (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb))) r (Std.DTreeMap.Internal.Impl.updateCell._proof_27 sz k v l r htb (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) l (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.balanced_impl (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) l (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb)))) (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb) (Std.DTreeMap.Internal.Impl.updateCell._proof_32 sz k v l r htb (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) l (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.lb_le_size_impl (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) l (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.size_impl_le_ub (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) l (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb))))) (Std.DTreeMap.Internal.Impl.updateCell._proof_34 sz k v l r htb (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) l (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.balanced_impl (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) l (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.lb_le_size_impl (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) l (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.size_impl_le_ub (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) l (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb)))) (Std.DTreeMap.Internal.Impl.updateCell._proof_37 sz k v l r htb (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) l (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.balanced_impl (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) l (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.lb_le_size_impl (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) l (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.size_impl_le_ub (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) l (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb)))) (Std.DTreeMap.Internal.Impl.updateCell._proof_40 sz k v l r htb (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) l (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.balanced_impl (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) l (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.lb_le_size_impl (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) l (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.size_impl_le_ub (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) l (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb)))))) (fun h ↦ Eq.refl (Std.DTreeMap.Internal.Impl.updateCell.match_1 (fun x ↦ Std.DTreeMap.Internal.Impl.SizedBalancedTree.{u, v} α β (HSub.hSub (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner sz k v l r)) (OfNat.ofNat 1)) (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner sz k v l r)) (OfNat.ofNat 1))) (Std.DTreeMap.Internal.Cell.inner (Std.DTreeMap.Internal.Cell.alter f (Std.DTreeMap.Internal.Cell.ofEq k v fun [Std.OrientedOrd α] ↦ Eq.trans heq h))) (fun _ ↦ Std.DTreeMap.Internal.Impl.SizedBalancedTree.mk (Std.DTreeMap.Internal.Impl.glue l r (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb) (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb) (Std.DTreeMap.Internal.Impl.updateCell._proof_42 sz k v l r htb)) (Std.DTreeMap.Internal.Impl.updateCell._proof_44 sz k v l r htb) (Std.DTreeMap.Internal.Impl.updateCell._proof_47 sz k v l r htb) (Std.DTreeMap.Internal.Impl.updateCell._proof_50 sz k v l r htb)) fun ky' y' ↦ Std.DTreeMap.Internal.Impl.SizedBalancedTree.mk (Std.DTreeMap.Internal.Impl.inner sz ky' y' l r) (Std.DTreeMap.Internal.Impl.updateCell._proof_52 sz k v l r htb ky' y') (Std.DTreeMap.Internal.Impl.updateCell._proof_55 sz k v l r htb ky' y') (Std.DTreeMap.Internal.Impl.updateCell._proof_58 sz k v l r htb ky' y'))) fun h ↦ Eq.refl (Std.DTreeMap.Internal.Impl.SizedBalancedTree.mk (Std.DTreeMap.Internal.Impl.balance k v l (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) r (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb) (Std.DTreeMap.Internal.Impl.updateCell._proof_27 sz k v l r htb (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) r (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.balanced_impl (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) r (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb)))) (Std.DTreeMap.Internal.Impl.updateCell._proof_61 sz k v l r htb (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) r (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.lb_le_size_impl (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) r (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.size_impl_le_ub (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) r (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb))))) (Std.DTreeMap.Internal.Impl.updateCell._proof_63 sz k v l r htb (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) r (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.balanced_impl (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) r (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.lb_le_size_impl (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) r (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.size_impl_le_ub (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) r (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb)))) (Std.DTreeMap.Internal.Impl.updateCell._proof_66 sz k v l r htb (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) r (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.balanced_impl (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) r (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.lb_le_size_impl (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) r (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.size_impl_le_ub (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) r (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb)))) (Std.DTreeMap.Internal.Impl.updateCell._proof_69 sz k v l r htb (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) r (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.balanced_impl (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) r (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.lb_le_size_impl (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) r (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.size_impl_le_ub (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) r (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb))))))))) (of_eq_true (Eq.trans (congrFun' (congrArg (Eq) (Std.DTreeMap.Internal.Impl.balance.congr_simp k v v (Eq.refl v) l l (Eq.refl l) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.alter a f r (Std.DTreeMap.Internal.Impl.minView._proof_11 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) r (Std.DTreeMap.Internal.Impl.Balanced.right htb))) (ihr (Std.DTreeMap.Internal.Impl.Balanced.right htb) (Std.DTreeMap.Internal.Impl.Ordered.right hto)) (Std.DTreeMap.Internal.Impl.minView._proof_9 sz k v l r htb) (Std.DTreeMap.Internal.Impl.minView._proof_15 sz k v l r htb (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.alter a f r (Std.DTreeMap.Internal.Impl.minView._proof_11 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.balanced_impl (Std.DTreeMap.Internal.Impl.alter a f r (Std.DTreeMap.Internal.Impl.minView._proof_11 sz k v l r htb)))) (Std.DTreeMap.Internal.Impl.alter._proof_2 sz k v l r htb (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.alter a f r (Std.DTreeMap.Internal.Impl.minView._proof_11 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.lb_le_size_impl (Std.DTreeMap.Internal.Impl.alter a f r (Std.DTreeMap.Internal.Impl.minView._proof_11 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.size_impl_le_ub (Std.DTreeMap.Internal.Impl.alter a f r (Std.DTreeMap.Internal.Impl.minView._proof_11 sz k v l r htb)))))) (Std.DTreeMap.Internal.Impl.balance k v l (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) r (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb) (Std.DTreeMap.Internal.Impl.updateCell._proof_27 sz k v l r htb (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) r (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.balanced_impl (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) r (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb)))) (Std.DTreeMap.Internal.Impl.updateCell._proof_61 sz k v l r htb (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) r (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.lb_le_size_impl (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) r (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.size_impl_le_ub (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) r (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb)))))) (eq_self (Std.DTreeMap.Internal.Impl.balance k v l (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) r (Std.DTreeMap.Internal.Impl.Balanced.right htb))) (Std.DTreeMap.Internal.Impl.minView._proof_9 sz k v l r htb) (Eq.ndrec (Std.DTreeMap.Internal.Impl.minView._proof_15 sz k v l r htb (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.alter a f r (Std.DTreeMap.Internal.Impl.minView._proof_11 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.balanced_impl (Std.DTreeMap.Internal.Impl.alter a f r (Std.DTreeMap.Internal.Impl.minView._proof_11 sz k v l r htb)))) (ihr (Std.DTreeMap.Internal.Impl.Balanced.right htb) (Std.DTreeMap.Internal.Impl.Ordered.right hto))) (Eq.ndrec (Std.DTreeMap.Internal.Impl.alter._proof_2 sz k v l r htb (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.alter a f r (Std.DTreeMap.Internal.Impl.minView._proof_11 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.lb_le_size_impl (Std.DTreeMap.Internal.Impl.alter a f r (Std.DTreeMap.Internal.Impl.minView._proof_11 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.size_impl_le_ub (Std.DTreeMap.Internal.Impl.alter a f r (Std.DTreeMap.Internal.Impl.minView._proof_11 sz k v l r htb)))) (ihr (Std.DTreeMap.Internal.Impl.Balanced.right htb) (Std.DTreeMap.Internal.Impl.Ordered.right hto))))))))) (Eq.symm h) (Eq.refl (Ord.compare a k))) (fun h h ↦ Eq.ndrec (fun heq ↦ id (Eq.mpr (id (congrArg (Eq (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.«getThenInsertIfNew?».match_1 a (fun x ↦ Std.DTreeMap.Internal.Impl.SizedBalancedTree.{u, v} α β (HSub.hSub (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner sz k v l r)) (OfNat.ofNat 1)) (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner sz k v l r)) (OfNat.ofNat 1))) (f (Option.some (cast (Std.DTreeMap.Internal.Impl.alter._proof_3 a k (Eq.trans heq (Eq.refl Ordering.eq))) v))) (fun _ ↦ Std.DTreeMap.Internal.Impl.SizedBalancedTree.mk (Std.DTreeMap.Internal.Impl.glue l r (Std.DTreeMap.Internal.Impl.minView._proof_9 sz k v l r htb) (Std.DTreeMap.Internal.Impl.minView._proof_11 sz k v l r htb) (Std.DTreeMap.Internal.Impl.minView._proof_13 sz k v l r htb)) (Std.DTreeMap.Internal.Impl.erase._proof_34 sz k v l r htb) (Std.DTreeMap.Internal.Impl.erase._proof_36 sz k v l r htb) (Std.DTreeMap.Internal.Impl.alter._proof_28 sz k v l r htb)) fun v ↦ Std.DTreeMap.Internal.Impl.SizedBalancedTree.mk (Std.DTreeMap.Internal.Impl.inner sz a v l r) (Std.DTreeMap.Internal.Impl.alter._proof_30 a sz k v l r htb v) (Std.DTreeMap.Internal.Impl.alter._proof_33 a sz k v l r htb v) (Std.DTreeMap.Internal.Impl.alter._proof_35 a sz k v l r htb v)))) (congrArg (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl) (Std.DTreeMap.Internal.Impl.applyPartition.go.match_1.congr heq (fun h ↦ Eq.refl (Std.DTreeMap.Internal.Impl.SizedBalancedTree.mk (Std.DTreeMap.Internal.Impl.balance k v (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) l (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb))) r (Std.DTreeMap.Internal.Impl.updateCell._proof_27 sz k v l r htb (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) l (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.balanced_impl (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) l (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb)))) (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb) (Std.DTreeMap.Internal.Impl.updateCell._proof_32 sz k v l r htb (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) l (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.lb_le_size_impl (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) l (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.size_impl_le_ub (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) l (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb))))) (Std.DTreeMap.Internal.Impl.updateCell._proof_34 sz k v l r htb (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) l (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.balanced_impl (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) l (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.lb_le_size_impl (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) l (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.size_impl_le_ub (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) l (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb)))) (Std.DTreeMap.Internal.Impl.updateCell._proof_37 sz k v l r htb (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) l (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.balanced_impl (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) l (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.lb_le_size_impl (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) l (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.size_impl_le_ub (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) l (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb)))) (Std.DTreeMap.Internal.Impl.updateCell._proof_40 sz k v l r htb (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) l (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.balanced_impl (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) l (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.lb_le_size_impl (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) l (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.size_impl_le_ub (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) l (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb)))))) (fun h ↦ Eq.refl (Std.DTreeMap.Internal.Impl.updateCell.match_1 (fun x ↦ Std.DTreeMap.Internal.Impl.SizedBalancedTree.{u, v} α β (HSub.hSub (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner sz k v l r)) (OfNat.ofNat 1)) (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner sz k v l r)) (OfNat.ofNat 1))) (Std.DTreeMap.Internal.Cell.inner (Std.DTreeMap.Internal.Cell.alter f (Std.DTreeMap.Internal.Cell.ofEq k v fun [Std.OrientedOrd α] ↦ Eq.trans heq h))) (fun _ ↦ Std.DTreeMap.Internal.Impl.SizedBalancedTree.mk (Std.DTreeMap.Internal.Impl.glue l r (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb) (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb) (Std.DTreeMap.Internal.Impl.updateCell._proof_42 sz k v l r htb)) (Std.DTreeMap.Internal.Impl.updateCell._proof_44 sz k v l r htb) (Std.DTreeMap.Internal.Impl.updateCell._proof_47 sz k v l r htb) (Std.DTreeMap.Internal.Impl.updateCell._proof_50 sz k v l r htb)) fun ky' y' ↦ Std.DTreeMap.Internal.Impl.SizedBalancedTree.mk (Std.DTreeMap.Internal.Impl.inner sz ky' y' l r) (Std.DTreeMap.Internal.Impl.updateCell._proof_52 sz k v l r htb ky' y') (Std.DTreeMap.Internal.Impl.updateCell._proof_55 sz k v l r htb ky' y') (Std.DTreeMap.Internal.Impl.updateCell._proof_58 sz k v l r htb ky' y'))) fun h ↦ Eq.refl (Std.DTreeMap.Internal.Impl.SizedBalancedTree.mk (Std.DTreeMap.Internal.Impl.balance k v l (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) r (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb) (Std.DTreeMap.Internal.Impl.updateCell._proof_27 sz k v l r htb (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) r (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.balanced_impl (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) r (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb)))) (Std.DTreeMap.Internal.Impl.updateCell._proof_61 sz k v l r htb (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) r (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.lb_le_size_impl (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) r (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.size_impl_le_ub (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) r (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb))))) (Std.DTreeMap.Internal.Impl.updateCell._proof_63 sz k v l r htb (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) r (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.balanced_impl (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) r (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.lb_le_size_impl (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) r (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.size_impl_le_ub (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) r (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb)))) (Std.DTreeMap.Internal.Impl.updateCell._proof_66 sz k v l r htb (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) r (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.balanced_impl (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) r (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.lb_le_size_impl (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) r (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.size_impl_le_ub (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) r (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb)))) (Std.DTreeMap.Internal.Impl.updateCell._proof_69 sz k v l r htb (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) r (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.balanced_impl (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) r (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.lb_le_size_impl (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) r (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.size_impl_le_ub (Std.DTreeMap.Internal.Impl.updateCell a (fun x ↦ Std.DTreeMap.Internal.Cell.alter f x) r (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb))))))))) (Eq.symm (id (Option.casesOn (f (Option.some (Eq.rec v (Std.DTreeMap.Internal.Cell.alter._proof_1 (Std.DTreeMap.Internal.Cell.ofEq k v fun [Std.OrientedOrd α] ↦ Eq.trans heq (Eq.refl Ordering.eq)) k v (Eq.refl (Option.some (Sigma.mk k v))))))) (fun h ↦ Eq.ndrec (fun h₁ ↦ Eq.refl (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.updateCell.match_1 (fun x ↦ Std.DTreeMap.Internal.Impl.SizedBalancedTree.{u, v} α β (HSub.hSub (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner sz k v l r)) (OfNat.ofNat 1)) (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner sz k v l r)) (OfNat.ofNat 1))) (Std.DTreeMap.Internal.Cell.inner (Std.DTreeMap.Internal.Cell.ofOption.match_1 a (fun «v?» ↦ Std.DTreeMap.Internal.Cell α β (Ord.compare a)) (Option.none) (fun _ ↦ Std.DTreeMap.Internal.Cell.empty) fun v ↦ Std.DTreeMap.Internal.Cell.of a v)) (fun _ ↦ Std.DTreeMap.Internal.Impl.SizedBalancedTree.mk (Std.DTreeMap.Internal.Impl.glue l r (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb) (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb) (Std.DTreeMap.Internal.Impl.updateCell._proof_42 sz k v l r htb)) (Std.DTreeMap.Internal.Impl.updateCell._proof_44 sz k v l r htb) (Std.DTreeMap.Internal.Impl.updateCell._proof_47 sz k v l r htb) (Std.DTreeMap.Internal.Impl.updateCell._proof_50 sz k v l r htb)) fun ky' y' ↦ Std.DTreeMap.Internal.Impl.SizedBalancedTree.mk (Std.DTreeMap.Internal.Impl.inner sz ky' y' l r) (Std.DTreeMap.Internal.Impl.updateCell._proof_52 sz k v l r htb ky' y') (Std.DTreeMap.Internal.Impl.updateCell._proof_55 sz k v l r htb ky' y') (Std.DTreeMap.Internal.Impl.updateCell._proof_58 sz k v l r htb ky' y')))) (Eq.symm h) (Eq.refl (f (Option.some (Eq.rec v (Std.DTreeMap.Internal.Cell.alter._proof_1 (Std.DTreeMap.Internal.Cell.ofEq k v fun [Std.OrientedOrd α] ↦ Eq.trans heq (Eq.refl Ordering.eq)) k v (Eq.refl (Option.some (Sigma.mk k v))))))))) (fun val h ↦ Eq.ndrec (fun h₁ ↦ Eq.refl (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.updateCell.match_1 (fun x ↦ Std.DTreeMap.Internal.Impl.SizedBalancedTree.{u, v} α β (HSub.hSub (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner sz k v l r)) (OfNat.ofNat 1)) (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner sz k v l r)) (OfNat.ofNat 1))) (Std.DTreeMap.Internal.Cell.inner (Std.DTreeMap.Internal.Cell.ofOption.match_1 a (fun «v?» ↦ Std.DTreeMap.Internal.Cell α β (Ord.compare a)) (Option.some val) (fun _ ↦ Std.DTreeMap.Internal.Cell.empty) fun v ↦ Std.DTreeMap.Internal.Cell.of a v)) (fun _ ↦ Std.DTreeMap.Internal.Impl.SizedBalancedTree.mk (Std.DTreeMap.Internal.Impl.glue l r (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb) (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb) (Std.DTreeMap.Internal.Impl.updateCell._proof_42 sz k v l r htb)) (Std.DTreeMap.Internal.Impl.updateCell._proof_44 sz k v l r htb) (Std.DTreeMap.Internal.Impl.updateCell._proof_47 sz k v l r htb) (Std.DTreeMap.Internal.Impl.updateCell._proof_50 sz k v l r htb)) fun ky' y' ↦ Std.DTreeMap.Internal.Impl.SizedBalancedTree.mk (Std.DTreeMap.Internal.Impl.inner sz ky' y' l r) (Std.DTreeMap.Internal.Impl.updateCell._proof_52 sz k v l r htb ky' y') (Std.DTreeMap.Internal.Impl.updateCell._proof_55 sz k v l r htb ky' y') (Std.DTreeMap.Internal.Impl.updateCell._proof_58 sz k v l r htb ky' y')))) (Eq.symm h) (Eq.refl (f (Option.some (Eq.rec v (Std.DTreeMap.Internal.Cell.alter._proof_1 (Std.DTreeMap.Internal.Cell.ofEq k v fun [Std.OrientedOrd α] ↦ Eq.trans heq (Eq.refl Ordering.eq)) k v (Eq.refl (Option.some (Sigma.mk k v))))))))) (Eq.refl (f (Option.some (Eq.rec v (Std.DTreeMap.Internal.Cell.alter._proof_1 (Std.DTreeMap.Internal.Cell.ofEq k v fun [Std.OrientedOrd α] ↦ Eq.trans heq (Eq.refl Ordering.eq)) k v (Eq.refl (Option.some (Sigma.mk k v))))))))))))) (Eq.symm h) (Eq.refl (Ord.compare a k))) (Eq.refl (Ord.compare a k))))) (fun htb hto ↦ id (Option.casesOn (f (Option.none)) (fun h ↦ Eq.ndrec (of_eq_true (eq_self (Std.DTreeMap.Internal.Impl.leaf))) (Eq.symm h)) (fun val h ↦ Eq.ndrec (of_eq_true (eq_self (Std.DTreeMap.Internal.Impl.inner (OfNat.ofNat 1) a val (Std.DTreeMap.Internal.Impl.leaf) (Std.DTreeMap.Internal.Impl.leaf)))) (Eq.symm h)) (Eq.refl (f (Option.none))))) t htb hto)
has type
  (size : Nat) → (k : α) → (v : β k) → (l : Std.DTreeMap.Internal.Impl.{u, v} α β) → (r : Std.DTreeMap.Internal.Impl.{u, v} α β) → (fun x ↦ (hr : Std.DTreeMap.Internal.Impl.Balanced x) → (h : Or (Std.DTreeMap.Internal.Impl.BalanceLErasePrecond (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k v l r)) (Std.DTreeMap.Internal.Impl.size x)) (Std.DTreeMap.Internal.Impl.BalanceLErasePrecond (Std.DTreeMap.Internal.Impl.size x) (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k v l r)))) → (fun r hr h ↦ Std.DTreeMap.Internal.Impl.{u, v} α β) x hr h) l → (fun x ↦ (hr : Std.DTreeMap.Internal.Impl.Balanced x) → (h : Or (Std.DTreeMap.Internal.Impl.BalanceLErasePrecond (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k v l r)) (Std.DTreeMap.Internal.Impl.size x)) (Std.DTreeMap.Internal.Impl.BalanceLErasePrecond (Std.DTreeMap.Internal.Impl.size x) (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k v l r)))) → (fun r hr h ↦ Std.DTreeMap.Internal.Impl.{u, v} α β) x hr h) r → Std.DTreeMap.Internal.Impl.Balanced (Std.DTreeMap.Internal.Impl.inner size k v l r) → Or (Std.DTreeMap.Internal.Impl.BalanceLErasePrecond (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k v l r)) (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k v l r))) (Std.DTreeMap.Internal.Impl.BalanceLErasePrecond (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k v l r)) (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k v l r))) → Std.DTreeMap.Internal.Impl.{u, v} α β
but is expected to have type
  (size : Nat) → (k : α) → (v : β k) → (l : Std.DTreeMap.Internal.Impl.{u, v} α β) → (r : Std.DTreeMap.Internal.Impl.{u, v} α β) → (fun x ↦ (hr : Std.DTreeMap.Internal.Impl.Balanced x) → (h : Or (Std.DTreeMap.Internal.Impl.BalanceLErasePrecond (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k v l r)) (Std.DTreeMap.Internal.Impl.size x)) (Std.DTreeMap.Internal.Impl.BalanceLErasePrecond (Std.DTreeMap.Internal.Impl.size x) (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k v l r)))) → (fun r hr h ↦ Std.DTreeMap.Internal.Impl.{u, v} α β) x hr h) l → (fun x ↦ (hr : Std.DTreeMap.Internal.Impl.Balanced x) → (h : Or (Std.DTreeMap.Internal.Impl.BalanceLErasePrecond (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k v l r)) (Std.DTreeMap.Internal.Impl.size x)) (Std.DTreeMap.Internal.Impl.BalanceLErasePrecond (Std.DTreeMap.Internal.Impl.size x) (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k v l r)))) → (fun r hr h ↦ Std.DTreeMap.Internal.Impl.{u, v} α β) x hr h) r → (fun x ↦ (hr : Std.DTreeMap.Internal.Impl.Balanced x) → (h : Or (Std.DTreeMap.Internal.Impl.BalanceLErasePrecond (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k v l r)) (Std.DTreeMap.Internal.Impl.size x)) (Std.DTreeMap.Internal.Impl.BalanceLErasePrecond (Std.DTreeMap.Internal.Impl.size x) (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k v l r)))) → (fun r hr h ↦ Std.DTreeMap.Internal.Impl.{u, v} α β) x hr h) (Std.DTreeMap.Internal.Impl.inner size k v l r)
theorem Std.DTreeMap.Internal.Impl.Const.alter_eq_alterₘ.{u, v} : ∀ {α : Type u}, ∀ {β : Type v}, ∀ [inst : Ord.{u} α], ∀ [inst : Std.TransOrd α], ∀ {t : Std.DTreeMap.Internal.Impl.{u, v} α fun x ↦ β}, ∀ {a : α}, ∀ {f : Option.{v} β → Option.{v} β}, ∀ (htb : Std.DTreeMap.Internal.Impl.Balanced t), Std.DTreeMap.Internal.Impl.Ordered t → Eq (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.Const.alter a f t htb)) (Std.DTreeMap.Internal.Impl.Const.alterₘ a f t htb) := fun {α β} [inst : Ord.{u} #1] [inst : Std.TransOrd #2] {t a f} htb hto ↦ Eq.mpr (id (congrArg (fun _a ↦ Eq (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.Const.alter a f t htb)) _a) (Std.DTreeMap.Internal.Impl.Const.alterₘ.eq_1 a f t htb))) (Std.DTreeMap.Internal.Impl.rec (fun sz k v l r ihl ihr htb hto ↦ Eq.mpr (id (congrArg (fun _a ↦ Eq (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl _a) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) (Std.DTreeMap.Internal.Impl.inner sz k v l r) htb))) (Std.DTreeMap.Internal.Impl.Const.alter.eq_2 a f sz k v l r htb))) (Eq.mpr (id (congrArg (fun _a ↦ Eq (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.insert.match_3.{(max u v) + 1} (fun x ↦ Std.DTreeMap.Internal.Impl.SizedBalancedTree.{u, v} α (fun x ↦ β) (HSub.hSub (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner sz k v l r)) (OfNat.ofNat 1)) (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner sz k v l r)) (OfNat.ofNat 1))) (Ord.compare a k) (fun _ ↦ Std.DTreeMap.Internal.Impl.Const.alter.match_1 l (fun x ↦ Std.DTreeMap.Internal.Impl.SizedBalancedTree.{u, v} α (fun x ↦ β) (HSub.hSub (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner sz k v l r)) (OfNat.ofNat 1)) (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner sz k v l r)) (OfNat.ofNat 1))) (Std.DTreeMap.Internal.Impl.Const.alter a f l (Std.DTreeMap.Internal.Impl.Const.alter._proof_18 sz k v l r htb)) fun d hd hd'₁ hd'₂ ↦ Std.DTreeMap.Internal.Impl.SizedBalancedTree.mk (Std.DTreeMap.Internal.Impl.balance k v d r (Std.DTreeMap.Internal.Impl.Const.alter._proof_20 sz k v l r htb d hd) (Std.DTreeMap.Internal.Impl.Const.alter._proof_22 sz k v l r htb) (Std.DTreeMap.Internal.Impl.Const.alter._proof_1 sz k v l r htb d hd'₁ hd'₂)) (Std.DTreeMap.Internal.Impl.Const.alter._proof_24 sz k v l r htb d hd hd'₁ hd'₂) (Std.DTreeMap.Internal.Impl.Const.alter._proof_27 sz k v l r htb d hd hd'₁ hd'₂) (Std.DTreeMap.Internal.Impl.Const.alter._proof_30 sz k v l r htb d hd hd'₁ hd'₂)) (fun _ ↦ Std.DTreeMap.Internal.Impl.Const.alter.match_1 r (fun x ↦ Std.DTreeMap.Internal.Impl.SizedBalancedTree.{u, v} α (fun x ↦ β) (HSub.hSub (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner sz k v l r)) (OfNat.ofNat 1)) (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner sz k v l r)) (OfNat.ofNat 1))) (Std.DTreeMap.Internal.Impl.Const.alter a f r (Std.DTreeMap.Internal.Impl.Const.alter._proof_22 sz k v l r htb)) fun d hd hd'₁ hd'₂ ↦ Std.DTreeMap.Internal.Impl.SizedBalancedTree.mk (Std.DTreeMap.Internal.Impl.balance k v l d (Std.DTreeMap.Internal.Impl.Const.alter._proof_18 sz k v l r htb) (Std.DTreeMap.Internal.Impl.Const.alter._proof_20 sz k v l r htb d hd) (Std.DTreeMap.Internal.Impl.Const.alter._proof_2 sz k v l r htb d hd'₁ hd'₂)) (Std.DTreeMap.Internal.Impl.Const.alter._proof_32 sz k v l r htb d hd hd'₁ hd'₂) (Std.DTreeMap.Internal.Impl.Const.alter._proof_35 sz k v l r htb d hd hd'₁ hd'₂) (Std.DTreeMap.Internal.Impl.Const.alter._proof_38 sz k v l r htb d hd hd'₁ hd'₂)) fun _ ↦ Std.DTreeMap.Internal.Impl.Const.«getThenInsertIfNew?».match_1 (fun x ↦ Std.DTreeMap.Internal.Impl.SizedBalancedTree.{u, v} α (fun x ↦ β) (HSub.hSub (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner sz k v l r)) (OfNat.ofNat 1)) (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner sz k v l r)) (OfNat.ofNat 1))) (f (Option.some v)) (fun _ ↦ Std.DTreeMap.Internal.Impl.SizedBalancedTree.mk (Std.DTreeMap.Internal.Impl.glue l r (Std.DTreeMap.Internal.Impl.Const.alter._proof_18 sz k v l r htb) (Std.DTreeMap.Internal.Impl.Const.alter._proof_22 sz k v l r htb) (Std.DTreeMap.Internal.Impl.Const.alter._proof_40 sz k v l r htb)) (Std.DTreeMap.Internal.Impl.Const.alter._proof_42 sz k v l r htb) (Std.DTreeMap.Internal.Impl.Const.alter._proof_45 sz k v l r htb) (Std.DTreeMap.Internal.Impl.Const.alter._proof_48 sz k v l r htb)) fun v ↦ Std.DTreeMap.Internal.Impl.SizedBalancedTree.mk (Std.DTreeMap.Internal.Impl.inner sz a v l r) (Std.DTreeMap.Internal.Impl.Const.alter._proof_50 a sz k v l r htb v) (Std.DTreeMap.Internal.Impl.Const.alter._proof_53 a sz k v l r htb v) (Std.DTreeMap.Internal.Impl.Const.alter._proof_56 a sz k v l r htb v))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl _a)) (Std.DTreeMap.Internal.Impl.updateCell.eq_2 a (Std.DTreeMap.Internal.Cell.Const.alter f) sz k v l r htb))) (_private.Std.Data.DTreeMap.Internal.WF.Lemmas.0.Std.DTreeMap.Internal.Impl.insert.match_3.splitter.{0} (fun x ↦ Eq (Ord.compare a k) x → Eq (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.insert.match_3.{(max u v) + 1} (fun x ↦ Std.DTreeMap.Internal.Impl.SizedBalancedTree.{u, v} α (fun x ↦ β) (HSub.hSub (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner sz k v l r)) (OfNat.ofNat 1)) (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner sz k v l r)) (OfNat.ofNat 1))) (Ord.compare a k) (fun _ ↦ Std.DTreeMap.Internal.Impl.Const.alter.match_1 l (fun x ↦ Std.DTreeMap.Internal.Impl.SizedBalancedTree.{u, v} α (fun x ↦ β) (HSub.hSub (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner sz k v l r)) (OfNat.ofNat 1)) (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner sz k v l r)) (OfNat.ofNat 1))) (Std.DTreeMap.Internal.Impl.Const.alter a f l (Std.DTreeMap.Internal.Impl.Const.alter._proof_18 sz k v l r htb)) fun d hd hd'₁ hd'₂ ↦ Std.DTreeMap.Internal.Impl.SizedBalancedTree.mk (Std.DTreeMap.Internal.Impl.balance k v d r (Std.DTreeMap.Internal.Impl.Const.alter._proof_20 sz k v l r htb d hd) (Std.DTreeMap.Internal.Impl.Const.alter._proof_22 sz k v l r htb) (Std.DTreeMap.Internal.Impl.Const.alter._proof_1 sz k v l r htb d hd'₁ hd'₂)) (Std.DTreeMap.Internal.Impl.Const.alter._proof_24 sz k v l r htb d hd hd'₁ hd'₂) (Std.DTreeMap.Internal.Impl.Const.alter._proof_27 sz k v l r htb d hd hd'₁ hd'₂) (Std.DTreeMap.Internal.Impl.Const.alter._proof_30 sz k v l r htb d hd hd'₁ hd'₂)) (fun _ ↦ Std.DTreeMap.Internal.Impl.Const.alter.match_1 r (fun x ↦ Std.DTreeMap.Internal.Impl.SizedBalancedTree.{u, v} α (fun x ↦ β) (HSub.hSub (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner sz k v l r)) (OfNat.ofNat 1)) (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner sz k v l r)) (OfNat.ofNat 1))) (Std.DTreeMap.Internal.Impl.Const.alter a f r (Std.DTreeMap.Internal.Impl.Const.alter._proof_22 sz k v l r htb)) fun d hd hd'₁ hd'₂ ↦ Std.DTreeMap.Internal.Impl.SizedBalancedTree.mk (Std.DTreeMap.Internal.Impl.balance k v l d (Std.DTreeMap.Internal.Impl.Const.alter._proof_18 sz k v l r htb) (Std.DTreeMap.Internal.Impl.Const.alter._proof_20 sz k v l r htb d hd) (Std.DTreeMap.Internal.Impl.Const.alter._proof_2 sz k v l r htb d hd'₁ hd'₂)) (Std.DTreeMap.Internal.Impl.Const.alter._proof_32 sz k v l r htb d hd hd'₁ hd'₂) (Std.DTreeMap.Internal.Impl.Const.alter._proof_35 sz k v l r htb d hd hd'₁ hd'₂) (Std.DTreeMap.Internal.Impl.Const.alter._proof_38 sz k v l r htb d hd hd'₁ hd'₂)) fun _ ↦ Std.DTreeMap.Internal.Impl.Const.«getThenInsertIfNew?».match_1 (fun x ↦ Std.DTreeMap.Internal.Impl.SizedBalancedTree.{u, v} α (fun x ↦ β) (HSub.hSub (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner sz k v l r)) (OfNat.ofNat 1)) (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner sz k v l r)) (OfNat.ofNat 1))) (f (Option.some v)) (fun _ ↦ Std.DTreeMap.Internal.Impl.SizedBalancedTree.mk (Std.DTreeMap.Internal.Impl.glue l r (Std.DTreeMap.Internal.Impl.Const.alter._proof_18 sz k v l r htb) (Std.DTreeMap.Internal.Impl.Const.alter._proof_22 sz k v l r htb) (Std.DTreeMap.Internal.Impl.Const.alter._proof_40 sz k v l r htb)) (Std.DTreeMap.Internal.Impl.Const.alter._proof_42 sz k v l r htb) (Std.DTreeMap.Internal.Impl.Const.alter._proof_45 sz k v l r htb) (Std.DTreeMap.Internal.Impl.Const.alter._proof_48 sz k v l r htb)) fun v ↦ Std.DTreeMap.Internal.Impl.SizedBalancedTree.mk (Std.DTreeMap.Internal.Impl.inner sz a v l r) (Std.DTreeMap.Internal.Impl.Const.alter._proof_50 a sz k v l r htb v) (Std.DTreeMap.Internal.Impl.Const.alter._proof_53 a sz k v l r htb v) (Std.DTreeMap.Internal.Impl.Const.alter._proof_56 a sz k v l r htb v))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.applyPartition.go.match_1.{(max u v) + 1} (fun x ↦ Std.DTreeMap.Internal.Impl.SizedBalancedTree.{u, v} α (fun x ↦ β) (HSub.hSub (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner sz k v l r)) (OfNat.ofNat 1)) (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner sz k v l r)) (OfNat.ofNat 1))) (Ord.compare a k) (fun h ↦ Std.DTreeMap.Internal.Impl.updateCell.match_3 l (fun x ↦ Std.DTreeMap.Internal.Impl.SizedBalancedTree.{u, v} α (fun x ↦ β) (HSub.hSub (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner sz k v l r)) (OfNat.ofNat 1)) (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner sz k v l r)) (OfNat.ofNat 1))) (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) l (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb)) fun newL h₁ h₂ h₃ ↦ Std.DTreeMap.Internal.Impl.SizedBalancedTree.mk (Std.DTreeMap.Internal.Impl.balance k v newL r (Std.DTreeMap.Internal.Impl.updateCell._proof_27 sz k v l r htb newL h₁) (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb) (Std.DTreeMap.Internal.Impl.updateCell._proof_32 sz k v l r htb newL h₂ h₃)) (Std.DTreeMap.Internal.Impl.updateCell._proof_34 sz k v l r htb newL h₁ h₂ h₃) (Std.DTreeMap.Internal.Impl.updateCell._proof_37 sz k v l r htb newL h₁ h₂ h₃) (Std.DTreeMap.Internal.Impl.updateCell._proof_40 sz k v l r htb newL h₁ h₂ h₃)) (fun h ↦ Std.DTreeMap.Internal.Impl.updateCell.match_1 (fun x ↦ Std.DTreeMap.Internal.Impl.SizedBalancedTree.{u, v} α (fun x ↦ β) (HSub.hSub (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner sz k v l r)) (OfNat.ofNat 1)) (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner sz k v l r)) (OfNat.ofNat 1))) (Std.DTreeMap.Internal.Cell.inner (Std.DTreeMap.Internal.Cell.Const.alter f (Std.DTreeMap.Internal.Cell.ofEq k v fun [Std.OrientedOrd α] ↦ h))) (fun _ ↦ Std.DTreeMap.Internal.Impl.SizedBalancedTree.mk (Std.DTreeMap.Internal.Impl.glue l r (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb) (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb) (Std.DTreeMap.Internal.Impl.updateCell._proof_42 sz k v l r htb)) (Std.DTreeMap.Internal.Impl.updateCell._proof_44 sz k v l r htb) (Std.DTreeMap.Internal.Impl.updateCell._proof_47 sz k v l r htb) (Std.DTreeMap.Internal.Impl.updateCell._proof_50 sz k v l r htb)) fun ky' y' ↦ Std.DTreeMap.Internal.Impl.SizedBalancedTree.mk (Std.DTreeMap.Internal.Impl.inner sz ky' y' l r) (Std.DTreeMap.Internal.Impl.updateCell._proof_52 sz k v l r htb ky' y') (Std.DTreeMap.Internal.Impl.updateCell._proof_55 sz k v l r htb ky' y') (Std.DTreeMap.Internal.Impl.updateCell._proof_58 sz k v l r htb ky' y')) fun h ↦ Std.DTreeMap.Internal.Impl.updateCell.match_3 r (fun x ↦ Std.DTreeMap.Internal.Impl.SizedBalancedTree.{u, v} α (fun x ↦ β) (HSub.hSub (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner sz k v l r)) (OfNat.ofNat 1)) (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner sz k v l r)) (OfNat.ofNat 1))) (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) r (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb)) fun newR h₁ h₂ h₃ ↦ Std.DTreeMap.Internal.Impl.SizedBalancedTree.mk (Std.DTreeMap.Internal.Impl.balance k v l newR (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb) (Std.DTreeMap.Internal.Impl.updateCell._proof_27 sz k v l r htb newR h₁) (Std.DTreeMap.Internal.Impl.updateCell._proof_61 sz k v l r htb newR h₂ h₃)) (Std.DTreeMap.Internal.Impl.updateCell._proof_63 sz k v l r htb newR h₁ h₂ h₃) (Std.DTreeMap.Internal.Impl.updateCell._proof_66 sz k v l r htb newR h₁ h₂ h₃) (Std.DTreeMap.Internal.Impl.updateCell._proof_69 sz k v l r htb newR h₁ h₂ h₃)))) (Ord.compare a k) (fun a h ↦ Eq.ndrec (fun heq ↦ id (Eq.mpr (id (congrArg (Eq (Std.DTreeMap.Internal.Impl.balance k v (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.Const.alter a f l (Std.DTreeMap.Internal.Impl.Const.alter._proof_18 sz k v l r htb))) r (Std.DTreeMap.Internal.Impl.Const.alter._proof_20 sz k v l r htb (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.Const.alter a f l (Std.DTreeMap.Internal.Impl.Const.alter._proof_18 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.balanced_impl (Std.DTreeMap.Internal.Impl.Const.alter a f l (Std.DTreeMap.Internal.Impl.Const.alter._proof_18 sz k v l r htb)))) (Std.DTreeMap.Internal.Impl.Const.alter._proof_22 sz k v l r htb) (Std.DTreeMap.Internal.Impl.Const.alter._proof_1 sz k v l r htb (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.Const.alter a f l (Std.DTreeMap.Internal.Impl.Const.alter._proof_18 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.lb_le_size_impl (Std.DTreeMap.Internal.Impl.Const.alter a f l (Std.DTreeMap.Internal.Impl.Const.alter._proof_18 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.size_impl_le_ub (Std.DTreeMap.Internal.Impl.Const.alter a f l (Std.DTreeMap.Internal.Impl.Const.alter._proof_18 sz k v l r htb)))))) (congrArg (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl) (Std.DTreeMap.Internal.Impl.applyPartition.go.match_1.congr heq (fun h ↦ Eq.refl (Std.DTreeMap.Internal.Impl.SizedBalancedTree.mk (Std.DTreeMap.Internal.Impl.balance k v (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) l (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb))) r (Std.DTreeMap.Internal.Impl.updateCell._proof_27 sz k v l r htb (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) l (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.balanced_impl (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) l (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb)))) (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb) (Std.DTreeMap.Internal.Impl.updateCell._proof_32 sz k v l r htb (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) l (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.lb_le_size_impl (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) l (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.size_impl_le_ub (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) l (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb))))) (Std.DTreeMap.Internal.Impl.updateCell._proof_34 sz k v l r htb (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) l (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.balanced_impl (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) l (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.lb_le_size_impl (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) l (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.size_impl_le_ub (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) l (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb)))) (Std.DTreeMap.Internal.Impl.updateCell._proof_37 sz k v l r htb (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) l (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.balanced_impl (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) l (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.lb_le_size_impl (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) l (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.size_impl_le_ub (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) l (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb)))) (Std.DTreeMap.Internal.Impl.updateCell._proof_40 sz k v l r htb (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) l (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.balanced_impl (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) l (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.lb_le_size_impl (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) l (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.size_impl_le_ub (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) l (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb)))))) (fun h ↦ Eq.refl (Std.DTreeMap.Internal.Impl.updateCell.match_1 (fun x ↦ Std.DTreeMap.Internal.Impl.SizedBalancedTree.{u, v} α (fun x ↦ β) (HSub.hSub (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner sz k v l r)) (OfNat.ofNat 1)) (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner sz k v l r)) (OfNat.ofNat 1))) (Std.DTreeMap.Internal.Cell.inner (Std.DTreeMap.Internal.Cell.Const.alter f (Std.DTreeMap.Internal.Cell.ofEq k v fun [Std.OrientedOrd α] ↦ Eq.trans heq h))) (fun _ ↦ Std.DTreeMap.Internal.Impl.SizedBalancedTree.mk (Std.DTreeMap.Internal.Impl.glue l r (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb) (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb) (Std.DTreeMap.Internal.Impl.updateCell._proof_42 sz k v l r htb)) (Std.DTreeMap.Internal.Impl.updateCell._proof_44 sz k v l r htb) (Std.DTreeMap.Internal.Impl.updateCell._proof_47 sz k v l r htb) (Std.DTreeMap.Internal.Impl.updateCell._proof_50 sz k v l r htb)) fun ky' y' ↦ Std.DTreeMap.Internal.Impl.SizedBalancedTree.mk (Std.DTreeMap.Internal.Impl.inner sz ky' y' l r) (Std.DTreeMap.Internal.Impl.updateCell._proof_52 sz k v l r htb ky' y') (Std.DTreeMap.Internal.Impl.updateCell._proof_55 sz k v l r htb ky' y') (Std.DTreeMap.Internal.Impl.updateCell._proof_58 sz k v l r htb ky' y'))) fun h ↦ Eq.refl (Std.DTreeMap.Internal.Impl.SizedBalancedTree.mk (Std.DTreeMap.Internal.Impl.balance k v l (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) r (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb) (Std.DTreeMap.Internal.Impl.updateCell._proof_27 sz k v l r htb (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) r (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.balanced_impl (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) r (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb)))) (Std.DTreeMap.Internal.Impl.updateCell._proof_61 sz k v l r htb (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) r (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.lb_le_size_impl (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) r (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.size_impl_le_ub (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) r (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb))))) (Std.DTreeMap.Internal.Impl.updateCell._proof_63 sz k v l r htb (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) r (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.balanced_impl (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) r (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.lb_le_size_impl (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) r (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.size_impl_le_ub (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) r (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb)))) (Std.DTreeMap.Internal.Impl.updateCell._proof_66 sz k v l r htb (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) r (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.balanced_impl (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) r (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.lb_le_size_impl (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) r (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.size_impl_le_ub (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) r (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb)))) (Std.DTreeMap.Internal.Impl.updateCell._proof_69 sz k v l r htb (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) r (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.balanced_impl (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) r (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.lb_le_size_impl (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) r (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.size_impl_le_ub (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) r (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb))))))))) (of_eq_true (Eq.trans (congrFun' (congrArg (Eq) (Std.DTreeMap.Internal.Impl.balance.congr_simp k v v (Eq.refl v) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.Const.alter a f l (Std.DTreeMap.Internal.Impl.Const.alter._proof_18 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) l (Std.DTreeMap.Internal.Impl.Balanced.left htb))) (ihl (Std.DTreeMap.Internal.Impl.Balanced.left htb) (Std.DTreeMap.Internal.Impl.Ordered.left hto)) r r (Eq.refl r) (Std.DTreeMap.Internal.Impl.Const.alter._proof_20 sz k v l r htb (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.Const.alter a f l (Std.DTreeMap.Internal.Impl.Const.alter._proof_18 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.balanced_impl (Std.DTreeMap.Internal.Impl.Const.alter a f l (Std.DTreeMap.Internal.Impl.Const.alter._proof_18 sz k v l r htb)))) (Std.DTreeMap.Internal.Impl.Const.alter._proof_22 sz k v l r htb) (Std.DTreeMap.Internal.Impl.Const.alter._proof_1 sz k v l r htb (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.Const.alter a f l (Std.DTreeMap.Internal.Impl.Const.alter._proof_18 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.lb_le_size_impl (Std.DTreeMap.Internal.Impl.Const.alter a f l (Std.DTreeMap.Internal.Impl.Const.alter._proof_18 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.size_impl_le_ub (Std.DTreeMap.Internal.Impl.Const.alter a f l (Std.DTreeMap.Internal.Impl.Const.alter._proof_18 sz k v l r htb)))))) (Std.DTreeMap.Internal.Impl.balance k v (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) l (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb))) r (Std.DTreeMap.Internal.Impl.updateCell._proof_27 sz k v l r htb (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) l (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.balanced_impl (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) l (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb)))) (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb) (Std.DTreeMap.Internal.Impl.updateCell._proof_32 sz k v l r htb (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) l (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.lb_le_size_impl (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) l (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.size_impl_le_ub (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) l (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb)))))) (eq_self (Std.DTreeMap.Internal.Impl.balance k v (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) l (Std.DTreeMap.Internal.Impl.Balanced.left htb))) r (Eq.ndrec (Std.DTreeMap.Internal.Impl.Const.alter._proof_20 sz k v l r htb (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.Const.alter a f l (Std.DTreeMap.Internal.Impl.Const.alter._proof_18 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.balanced_impl (Std.DTreeMap.Internal.Impl.Const.alter a f l (Std.DTreeMap.Internal.Impl.Const.alter._proof_18 sz k v l r htb)))) (ihl (Std.DTreeMap.Internal.Impl.Balanced.left htb) (Std.DTreeMap.Internal.Impl.Ordered.left hto))) (Std.DTreeMap.Internal.Impl.Const.alter._proof_22 sz k v l r htb) (Eq.ndrec (Eq.ndrec (Std.DTreeMap.Internal.Impl.Const.alter._proof_1 sz k v l r htb (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.Const.alter a f l (Std.DTreeMap.Internal.Impl.Const.alter._proof_18 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.lb_le_size_impl (Std.DTreeMap.Internal.Impl.Const.alter a f l (Std.DTreeMap.Internal.Impl.Const.alter._proof_18 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.size_impl_le_ub (Std.DTreeMap.Internal.Impl.Const.alter a f l (Std.DTreeMap.Internal.Impl.Const.alter._proof_18 sz k v l r htb)))) (Eq.refl r)) (ihl (Std.DTreeMap.Internal.Impl.Balanced.left htb) (Std.DTreeMap.Internal.Impl.Ordered.left hto))))))))) (Eq.symm h) (Eq.refl (Ord.compare a k))) (fun a h ↦ Eq.ndrec (fun heq ↦ id (Eq.mpr (id (congrArg (Eq (Std.DTreeMap.Internal.Impl.balance k v l (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.Const.alter a f r (Std.DTreeMap.Internal.Impl.Const.alter._proof_22 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.Const.alter._proof_18 sz k v l r htb) (Std.DTreeMap.Internal.Impl.Const.alter._proof_20 sz k v l r htb (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.Const.alter a f r (Std.DTreeMap.Internal.Impl.Const.alter._proof_22 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.balanced_impl (Std.DTreeMap.Internal.Impl.Const.alter a f r (Std.DTreeMap.Internal.Impl.Const.alter._proof_22 sz k v l r htb)))) (Std.DTreeMap.Internal.Impl.Const.alter._proof_2 sz k v l r htb (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.Const.alter a f r (Std.DTreeMap.Internal.Impl.Const.alter._proof_22 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.lb_le_size_impl (Std.DTreeMap.Internal.Impl.Const.alter a f r (Std.DTreeMap.Internal.Impl.Const.alter._proof_22 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.size_impl_le_ub (Std.DTreeMap.Internal.Impl.Const.alter a f r (Std.DTreeMap.Internal.Impl.Const.alter._proof_22 sz k v l r htb)))))) (congrArg (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl) (Std.DTreeMap.Internal.Impl.applyPartition.go.match_1.congr heq (fun h ↦ Eq.refl (Std.DTreeMap.Internal.Impl.SizedBalancedTree.mk (Std.DTreeMap.Internal.Impl.balance k v (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) l (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb))) r (Std.DTreeMap.Internal.Impl.updateCell._proof_27 sz k v l r htb (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) l (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.balanced_impl (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) l (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb)))) (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb) (Std.DTreeMap.Internal.Impl.updateCell._proof_32 sz k v l r htb (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) l (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.lb_le_size_impl (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) l (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.size_impl_le_ub (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) l (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb))))) (Std.DTreeMap.Internal.Impl.updateCell._proof_34 sz k v l r htb (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) l (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.balanced_impl (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) l (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.lb_le_size_impl (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) l (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.size_impl_le_ub (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) l (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb)))) (Std.DTreeMap.Internal.Impl.updateCell._proof_37 sz k v l r htb (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) l (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.balanced_impl (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) l (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.lb_le_size_impl (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) l (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.size_impl_le_ub (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) l (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb)))) (Std.DTreeMap.Internal.Impl.updateCell._proof_40 sz k v l r htb (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) l (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.balanced_impl (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) l (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.lb_le_size_impl (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) l (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.size_impl_le_ub (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) l (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb)))))) (fun h ↦ Eq.refl (Std.DTreeMap.Internal.Impl.updateCell.match_1 (fun x ↦ Std.DTreeMap.Internal.Impl.SizedBalancedTree.{u, v} α (fun x ↦ β) (HSub.hSub (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner sz k v l r)) (OfNat.ofNat 1)) (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner sz k v l r)) (OfNat.ofNat 1))) (Std.DTreeMap.Internal.Cell.inner (Std.DTreeMap.Internal.Cell.Const.alter f (Std.DTreeMap.Internal.Cell.ofEq k v fun [Std.OrientedOrd α] ↦ Eq.trans heq h))) (fun _ ↦ Std.DTreeMap.Internal.Impl.SizedBalancedTree.mk (Std.DTreeMap.Internal.Impl.glue l r (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb) (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb) (Std.DTreeMap.Internal.Impl.updateCell._proof_42 sz k v l r htb)) (Std.DTreeMap.Internal.Impl.updateCell._proof_44 sz k v l r htb) (Std.DTreeMap.Internal.Impl.updateCell._proof_47 sz k v l r htb) (Std.DTreeMap.Internal.Impl.updateCell._proof_50 sz k v l r htb)) fun ky' y' ↦ Std.DTreeMap.Internal.Impl.SizedBalancedTree.mk (Std.DTreeMap.Internal.Impl.inner sz ky' y' l r) (Std.DTreeMap.Internal.Impl.updateCell._proof_52 sz k v l r htb ky' y') (Std.DTreeMap.Internal.Impl.updateCell._proof_55 sz k v l r htb ky' y') (Std.DTreeMap.Internal.Impl.updateCell._proof_58 sz k v l r htb ky' y'))) fun h ↦ Eq.refl (Std.DTreeMap.Internal.Impl.SizedBalancedTree.mk (Std.DTreeMap.Internal.Impl.balance k v l (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) r (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb) (Std.DTreeMap.Internal.Impl.updateCell._proof_27 sz k v l r htb (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) r (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.balanced_impl (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) r (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb)))) (Std.DTreeMap.Internal.Impl.updateCell._proof_61 sz k v l r htb (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) r (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.lb_le_size_impl (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) r (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.size_impl_le_ub (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) r (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb))))) (Std.DTreeMap.Internal.Impl.updateCell._proof_63 sz k v l r htb (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) r (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.balanced_impl (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) r (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.lb_le_size_impl (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) r (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.size_impl_le_ub (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) r (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb)))) (Std.DTreeMap.Internal.Impl.updateCell._proof_66 sz k v l r htb (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) r (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.balanced_impl (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) r (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.lb_le_size_impl (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) r (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.size_impl_le_ub (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) r (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb)))) (Std.DTreeMap.Internal.Impl.updateCell._proof_69 sz k v l r htb (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) r (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.balanced_impl (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) r (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.lb_le_size_impl (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) r (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.size_impl_le_ub (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) r (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb))))))))) (of_eq_true (Eq.trans (congrFun' (congrArg (Eq) (Std.DTreeMap.Internal.Impl.balance.congr_simp k v v (Eq.refl v) l l (Eq.refl l) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.Const.alter a f r (Std.DTreeMap.Internal.Impl.Const.alter._proof_22 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) r (Std.DTreeMap.Internal.Impl.Balanced.right htb))) (ihr (Std.DTreeMap.Internal.Impl.Balanced.right htb) (Std.DTreeMap.Internal.Impl.Ordered.right hto)) (Std.DTreeMap.Internal.Impl.Const.alter._proof_18 sz k v l r htb) (Std.DTreeMap.Internal.Impl.Const.alter._proof_20 sz k v l r htb (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.Const.alter a f r (Std.DTreeMap.Internal.Impl.Const.alter._proof_22 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.balanced_impl (Std.DTreeMap.Internal.Impl.Const.alter a f r (Std.DTreeMap.Internal.Impl.Const.alter._proof_22 sz k v l r htb)))) (Std.DTreeMap.Internal.Impl.Const.alter._proof_2 sz k v l r htb (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.Const.alter a f r (Std.DTreeMap.Internal.Impl.Const.alter._proof_22 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.lb_le_size_impl (Std.DTreeMap.Internal.Impl.Const.alter a f r (Std.DTreeMap.Internal.Impl.Const.alter._proof_22 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.size_impl_le_ub (Std.DTreeMap.Internal.Impl.Const.alter a f r (Std.DTreeMap.Internal.Impl.Const.alter._proof_22 sz k v l r htb)))))) (Std.DTreeMap.Internal.Impl.balance k v l (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) r (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb) (Std.DTreeMap.Internal.Impl.updateCell._proof_27 sz k v l r htb (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) r (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.balanced_impl (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) r (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb)))) (Std.DTreeMap.Internal.Impl.updateCell._proof_61 sz k v l r htb (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) r (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.lb_le_size_impl (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) r (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.size_impl_le_ub (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) r (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb)))))) (eq_self (Std.DTreeMap.Internal.Impl.balance k v l (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) r (Std.DTreeMap.Internal.Impl.Balanced.right htb))) (Std.DTreeMap.Internal.Impl.Const.alter._proof_18 sz k v l r htb) (Eq.ndrec (Std.DTreeMap.Internal.Impl.Const.alter._proof_20 sz k v l r htb (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.Const.alter a f r (Std.DTreeMap.Internal.Impl.Const.alter._proof_22 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.balanced_impl (Std.DTreeMap.Internal.Impl.Const.alter a f r (Std.DTreeMap.Internal.Impl.Const.alter._proof_22 sz k v l r htb)))) (ihr (Std.DTreeMap.Internal.Impl.Balanced.right htb) (Std.DTreeMap.Internal.Impl.Ordered.right hto))) (Eq.ndrec (Std.DTreeMap.Internal.Impl.Const.alter._proof_2 sz k v l r htb (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.Const.alter a f r (Std.DTreeMap.Internal.Impl.Const.alter._proof_22 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.lb_le_size_impl (Std.DTreeMap.Internal.Impl.Const.alter a f r (Std.DTreeMap.Internal.Impl.Const.alter._proof_22 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.size_impl_le_ub (Std.DTreeMap.Internal.Impl.Const.alter a f r (Std.DTreeMap.Internal.Impl.Const.alter._proof_22 sz k v l r htb)))) (ihr (Std.DTreeMap.Internal.Impl.Balanced.right htb) (Std.DTreeMap.Internal.Impl.Ordered.right hto))))))))) (Eq.symm h) (Eq.refl (Ord.compare a k))) (fun a h ↦ Eq.ndrec (fun heq ↦ id (Eq.mpr (id (congrArg (Eq (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.Const.«getThenInsertIfNew?».match_1 (fun x ↦ Std.DTreeMap.Internal.Impl.SizedBalancedTree.{u, v} α (fun x ↦ β) (HSub.hSub (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner sz k v l r)) (OfNat.ofNat 1)) (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner sz k v l r)) (OfNat.ofNat 1))) (f (Option.some v)) (fun _ ↦ Std.DTreeMap.Internal.Impl.SizedBalancedTree.mk (Std.DTreeMap.Internal.Impl.glue l r (Std.DTreeMap.Internal.Impl.Const.alter._proof_18 sz k v l r htb) (Std.DTreeMap.Internal.Impl.Const.alter._proof_22 sz k v l r htb) (Std.DTreeMap.Internal.Impl.Const.alter._proof_40 sz k v l r htb)) (Std.DTreeMap.Internal.Impl.Const.alter._proof_42 sz k v l r htb) (Std.DTreeMap.Internal.Impl.Const.alter._proof_45 sz k v l r htb) (Std.DTreeMap.Internal.Impl.Const.alter._proof_48 sz k v l r htb)) fun v ↦ Std.DTreeMap.Internal.Impl.SizedBalancedTree.mk (Std.DTreeMap.Internal.Impl.inner sz a v l r) (Std.DTreeMap.Internal.Impl.Const.alter._proof_50 a sz k v l r htb v) (Std.DTreeMap.Internal.Impl.Const.alter._proof_53 a sz k v l r htb v) (Std.DTreeMap.Internal.Impl.Const.alter._proof_56 a sz k v l r htb v)))) (congrArg (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl) (Std.DTreeMap.Internal.Impl.applyPartition.go.match_1.congr heq (fun h ↦ Eq.refl (Std.DTreeMap.Internal.Impl.SizedBalancedTree.mk (Std.DTreeMap.Internal.Impl.balance k v (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) l (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb))) r (Std.DTreeMap.Internal.Impl.updateCell._proof_27 sz k v l r htb (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) l (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.balanced_impl (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) l (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb)))) (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb) (Std.DTreeMap.Internal.Impl.updateCell._proof_32 sz k v l r htb (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) l (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.lb_le_size_impl (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) l (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.size_impl_le_ub (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) l (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb))))) (Std.DTreeMap.Internal.Impl.updateCell._proof_34 sz k v l r htb (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) l (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.balanced_impl (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) l (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.lb_le_size_impl (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) l (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.size_impl_le_ub (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) l (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb)))) (Std.DTreeMap.Internal.Impl.updateCell._proof_37 sz k v l r htb (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) l (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.balanced_impl (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) l (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.lb_le_size_impl (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) l (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.size_impl_le_ub (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) l (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb)))) (Std.DTreeMap.Internal.Impl.updateCell._proof_40 sz k v l r htb (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) l (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.balanced_impl (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) l (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.lb_le_size_impl (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) l (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.size_impl_le_ub (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) l (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb)))))) (fun h ↦ Eq.refl (Std.DTreeMap.Internal.Impl.updateCell.match_1 (fun x ↦ Std.DTreeMap.Internal.Impl.SizedBalancedTree.{u, v} α (fun x ↦ β) (HSub.hSub (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner sz k v l r)) (OfNat.ofNat 1)) (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner sz k v l r)) (OfNat.ofNat 1))) (Std.DTreeMap.Internal.Cell.inner (Std.DTreeMap.Internal.Cell.Const.alter f (Std.DTreeMap.Internal.Cell.ofEq k v fun [Std.OrientedOrd α] ↦ Eq.trans heq h))) (fun _ ↦ Std.DTreeMap.Internal.Impl.SizedBalancedTree.mk (Std.DTreeMap.Internal.Impl.glue l r (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb) (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb) (Std.DTreeMap.Internal.Impl.updateCell._proof_42 sz k v l r htb)) (Std.DTreeMap.Internal.Impl.updateCell._proof_44 sz k v l r htb) (Std.DTreeMap.Internal.Impl.updateCell._proof_47 sz k v l r htb) (Std.DTreeMap.Internal.Impl.updateCell._proof_50 sz k v l r htb)) fun ky' y' ↦ Std.DTreeMap.Internal.Impl.SizedBalancedTree.mk (Std.DTreeMap.Internal.Impl.inner sz ky' y' l r) (Std.DTreeMap.Internal.Impl.updateCell._proof_52 sz k v l r htb ky' y') (Std.DTreeMap.Internal.Impl.updateCell._proof_55 sz k v l r htb ky' y') (Std.DTreeMap.Internal.Impl.updateCell._proof_58 sz k v l r htb ky' y'))) fun h ↦ Eq.refl (Std.DTreeMap.Internal.Impl.SizedBalancedTree.mk (Std.DTreeMap.Internal.Impl.balance k v l (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) r (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb) (Std.DTreeMap.Internal.Impl.updateCell._proof_27 sz k v l r htb (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) r (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.balanced_impl (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) r (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb)))) (Std.DTreeMap.Internal.Impl.updateCell._proof_61 sz k v l r htb (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) r (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.lb_le_size_impl (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) r (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.size_impl_le_ub (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) r (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb))))) (Std.DTreeMap.Internal.Impl.updateCell._proof_63 sz k v l r htb (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) r (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.balanced_impl (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) r (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.lb_le_size_impl (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) r (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.size_impl_le_ub (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) r (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb)))) (Std.DTreeMap.Internal.Impl.updateCell._proof_66 sz k v l r htb (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) r (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.balanced_impl (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) r (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.lb_le_size_impl (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) r (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.size_impl_le_ub (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) r (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb)))) (Std.DTreeMap.Internal.Impl.updateCell._proof_69 sz k v l r htb (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) r (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.balanced_impl (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) r (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.lb_le_size_impl (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) r (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.size_impl_le_ub (Std.DTreeMap.Internal.Impl.updateCell a (Std.DTreeMap.Internal.Cell.Const.alter f) r (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb))))))))) (Eq.symm (id (Option.casesOn (f (Option.some v)) (fun h ↦ Eq.ndrec (fun h₁ ↦ Eq.refl (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.updateCell.match_1 (fun x ↦ Std.DTreeMap.Internal.Impl.SizedBalancedTree.{u, v} α (fun x ↦ β) (HSub.hSub (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner sz k v l r)) (OfNat.ofNat 1)) (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner sz k v l r)) (OfNat.ofNat 1))) (Std.DTreeMap.Internal.Cell.inner (Std.DTreeMap.Internal.Cell.ofOption.match_1 a (fun «v?» ↦ Std.DTreeMap.Internal.Cell α (fun x ↦ β) (Ord.compare a)) (Option.none) (fun _ ↦ Std.DTreeMap.Internal.Cell.empty) fun v ↦ Std.DTreeMap.Internal.Cell.of a v)) (fun _ ↦ Std.DTreeMap.Internal.Impl.SizedBalancedTree.mk (Std.DTreeMap.Internal.Impl.glue l r (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb) (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb) (Std.DTreeMap.Internal.Impl.updateCell._proof_42 sz k v l r htb)) (Std.DTreeMap.Internal.Impl.updateCell._proof_44 sz k v l r htb) (Std.DTreeMap.Internal.Impl.updateCell._proof_47 sz k v l r htb) (Std.DTreeMap.Internal.Impl.updateCell._proof_50 sz k v l r htb)) fun ky' y' ↦ Std.DTreeMap.Internal.Impl.SizedBalancedTree.mk (Std.DTreeMap.Internal.Impl.inner sz ky' y' l r) (Std.DTreeMap.Internal.Impl.updateCell._proof_52 sz k v l r htb ky' y') (Std.DTreeMap.Internal.Impl.updateCell._proof_55 sz k v l r htb ky' y') (Std.DTreeMap.Internal.Impl.updateCell._proof_58 sz k v l r htb ky' y')))) (Eq.symm h) (Eq.refl (f (Option.some v)))) (fun val h ↦ Eq.ndrec (fun h₁ ↦ Eq.refl (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.updateCell.match_1 (fun x ↦ Std.DTreeMap.Internal.Impl.SizedBalancedTree.{u, v} α (fun x ↦ β) (HSub.hSub (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner sz k v l r)) (OfNat.ofNat 1)) (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner sz k v l r)) (OfNat.ofNat 1))) (Std.DTreeMap.Internal.Cell.inner (Std.DTreeMap.Internal.Cell.ofOption.match_1 a (fun «v?» ↦ Std.DTreeMap.Internal.Cell α (fun x ↦ β) (Ord.compare a)) (Option.some val) (fun _ ↦ Std.DTreeMap.Internal.Cell.empty) fun v ↦ Std.DTreeMap.Internal.Cell.of a v)) (fun _ ↦ Std.DTreeMap.Internal.Impl.SizedBalancedTree.mk (Std.DTreeMap.Internal.Impl.glue l r (Std.DTreeMap.Internal.Impl.updateCell._proof_25 sz k v l r htb) (Std.DTreeMap.Internal.Impl.updateCell._proof_29 sz k v l r htb) (Std.DTreeMap.Internal.Impl.updateCell._proof_42 sz k v l r htb)) (Std.DTreeMap.Internal.Impl.updateCell._proof_44 sz k v l r htb) (Std.DTreeMap.Internal.Impl.updateCell._proof_47 sz k v l r htb) (Std.DTreeMap.Internal.Impl.updateCell._proof_50 sz k v l r htb)) fun ky' y' ↦ Std.DTreeMap.Internal.Impl.SizedBalancedTree.mk (Std.DTreeMap.Internal.Impl.inner sz ky' y' l r) (Std.DTreeMap.Internal.Impl.updateCell._proof_52 sz k v l r htb ky' y') (Std.DTreeMap.Internal.Impl.updateCell._proof_55 sz k v l r htb ky' y') (Std.DTreeMap.Internal.Impl.updateCell._proof_58 sz k v l r htb ky' y')))) (Eq.symm h) (Eq.refl (f (Option.some v)))) (Eq.refl (f (Option.some v)))))))) (Eq.symm h) (Eq.refl (Ord.compare a k))) (Eq.refl (Ord.compare a k))))) (fun htb hto ↦ id (Option.casesOn (f (Option.none)) (fun h ↦ Eq.ndrec (of_eq_true (eq_self (Std.DTreeMap.Internal.Impl.leaf))) (Eq.symm h)) (fun val h ↦ Eq.ndrec (of_eq_true (eq_self (Std.DTreeMap.Internal.Impl.inner (OfNat.ofNat 1) a val (Std.DTreeMap.Internal.Impl.leaf) (Std.DTreeMap.Internal.Impl.leaf)))) (Eq.symm h)) (Eq.refl (f (Option.none))))) t htb hto)
has type
  (size : Nat) → (k : α) → (v : (fun x ↦ β) k) → (l : Std.DTreeMap.Internal.Impl.{u, v} α fun x ↦ β) → (r : Std.DTreeMap.Internal.Impl.{u, v} α fun x ↦ β) → (fun x ↦ (hr : Std.DTreeMap.Internal.Impl.Balanced x) → (h : Or (Std.DTreeMap.Internal.Impl.BalanceLErasePrecond (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k v l r)) (Std.DTreeMap.Internal.Impl.size x)) (Std.DTreeMap.Internal.Impl.BalanceLErasePrecond (Std.DTreeMap.Internal.Impl.size x) (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k v l r)))) → (fun r hr h ↦ Std.DTreeMap.Internal.Impl.{u, v} α fun x ↦ β) x hr h) l → (fun x ↦ (hr : Std.DTreeMap.Internal.Impl.Balanced x) → (h : Or (Std.DTreeMap.Internal.Impl.BalanceLErasePrecond (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k v l r)) (Std.DTreeMap.Internal.Impl.size x)) (Std.DTreeMap.Internal.Impl.BalanceLErasePrecond (Std.DTreeMap.Internal.Impl.size x) (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k v l r)))) → (fun r hr h ↦ Std.DTreeMap.Internal.Impl.{u, v} α fun x ↦ β) x hr h) r → Std.DTreeMap.Internal.Impl.Balanced (Std.DTreeMap.Internal.Impl.inner size k v l r) → Or (Std.DTreeMap.Internal.Impl.BalanceLErasePrecond (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k v l r)) (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k v l r))) (Std.DTreeMap.Internal.Impl.BalanceLErasePrecond (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k v l r)) (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k v l r))) → Std.DTreeMap.Internal.Impl.{u, v} α fun x ↦ β
but is expected to have type
  (size : Nat) → (k : α) → (v : (fun x ↦ β) k) → (l : Std.DTreeMap.Internal.Impl.{u, v} α fun x ↦ β) → (r : Std.DTreeMap.Internal.Impl.{u, v} α fun x ↦ β) → (fun x ↦ (hr : Std.DTreeMap.Internal.Impl.Balanced x) → (h : Or (Std.DTreeMap.Internal.Impl.BalanceLErasePrecond (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k v l r)) (Std.DTreeMap.Internal.Impl.size x)) (Std.DTreeMap.Internal.Impl.BalanceLErasePrecond (Std.DTreeMap.Internal.Impl.size x) (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k v l r)))) → (fun r hr h ↦ Std.DTreeMap.Internal.Impl.{u, v} α fun x ↦ β) x hr h) l → (fun x ↦ (hr : Std.DTreeMap.Internal.Impl.Balanced x) → (h : Or (Std.DTreeMap.Internal.Impl.BalanceLErasePrecond (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k v l r)) (Std.DTreeMap.Internal.Impl.size x)) (Std.DTreeMap.Internal.Impl.BalanceLErasePrecond (Std.DTreeMap.Internal.Impl.size x) (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k v l r)))) → (fun r hr h ↦ Std.DTreeMap.Internal.Impl.{u, v} α fun x ↦ β) x hr h) r → (fun x ↦ (hr : Std.DTreeMap.Internal.Impl.Balanced x) → (h : Or (Std.DTreeMap.Internal.Impl.BalanceLErasePrecond (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k v l r)) (Std.DTreeMap.Internal.Impl.size x)) (Std.DTreeMap.Internal.Impl.BalanceLErasePrecond (Std.DTreeMap.Internal.Impl.size x) (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k v l r)))) → (fun r hr h ↦ Std.DTreeMap.Internal.Impl.{u, v} α fun x ↦ β) x hr h) (Std.DTreeMap.Internal.Impl.inner size k v l r)
theorem Std.DTreeMap.Internal.Impl.modify_eq_alter.{u, v} : ∀ {α : Type u}, ∀ {β : α → Type v}, ∀ [inst : Ord.{u} α], ∀ [inst : Std.LawfulEqOrd α], ∀ {t : Std.DTreeMap.Internal.Impl.{u, v} α β}, ∀ {a : α}, ∀ {f : β a → β a}, ∀ (htb : Std.DTreeMap.Internal.Impl.Balanced t), Eq (Std.DTreeMap.Internal.Impl.modify a f t) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.alter a (fun x ↦ Option.map f x) t htb)) := fun {α β} [inst : Ord.{u} #1] [inst : Std.LawfulEqOrd #2] {t a f} htb ↦ Std.DTreeMap.Internal.Impl.rec (fun sz k v l r ihl ihr htb ↦ let hmb : Std.DTreeMap.Internal.Impl.Balanced (Std.DTreeMap.Internal.Impl.modify a f (Std.DTreeMap.Internal.Impl.inner sz k v l r)) := Std.DTreeMap.Internal.Impl.balanced_modify htb
Eq.mpr (id (congrArg (fun _a ↦ Eq _a (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.alter a (fun x ↦ Option.map f x) (Std.DTreeMap.Internal.Impl.inner sz k v l r) htb))) (Std.DTreeMap.Internal.Impl.modify.eq_2 a f sz k v l r))) (Eq.mpr (id (congrArg (fun _a ↦ Eq (Std.DTreeMap.Internal.Impl.alter.match_3.{(max u v) + 1} (fun x ↦ Std.DTreeMap.Internal.Impl.{u, v} α β) (Ord.compare a k) (fun h ↦ Std.DTreeMap.Internal.Impl.inner sz k v (Std.DTreeMap.Internal.Impl.modify a f l) r) (fun h ↦ Std.DTreeMap.Internal.Impl.inner sz k v l (Std.DTreeMap.Internal.Impl.modify a f r)) fun h ↦ Std.DTreeMap.Internal.Impl.inner sz a (f (cast (Std.DTreeMap.Internal.Impl.alter._proof_3 a k h) v)) l r) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl _a)) (Std.DTreeMap.Internal.Impl.alter.eq_2 a (fun x ↦ Option.map f x) sz k v l r htb))) (_private.Std.Data.DTreeMap.Internal.WF.Lemmas.0.Std.DTreeMap.Internal.Impl.alter.match_3.splitter.{0} (fun x ↦ Eq (Ord.compare a k) x → Std.DTreeMap.Internal.Impl.Balanced (Std.DTreeMap.Internal.Impl.alter.match_3.{(max u v) + 1} (fun x ↦ Std.DTreeMap.Internal.Impl.{u, v} α β) (Ord.compare a k) (fun h ↦ Std.DTreeMap.Internal.Impl.inner sz k v (Std.DTreeMap.Internal.Impl.modify a f l) r) (fun h ↦ Std.DTreeMap.Internal.Impl.inner sz k v l (Std.DTreeMap.Internal.Impl.modify a f r)) fun h ↦ Std.DTreeMap.Internal.Impl.inner sz a (f (cast (Std.DTreeMap.Internal.Impl.alter._proof_3 a k (Eq.trans (Eq.refl (Ord.compare a k)) h)) v)) l r) → Eq (Std.DTreeMap.Internal.Impl.alter.match_3.{(max u v) + 1} (fun x ↦ Std.DTreeMap.Internal.Impl.{u, v} α β) (Ord.compare a k) (fun h ↦ Std.DTreeMap.Internal.Impl.inner sz k v (Std.DTreeMap.Internal.Impl.modify a f l) r) (fun h ↦ Std.DTreeMap.Internal.Impl.inner sz k v l (Std.DTreeMap.Internal.Impl.modify a f r)) fun h ↦ Std.DTreeMap.Internal.Impl.inner sz a (f (cast (Std.DTreeMap.Internal.Impl.alter._proof_3 a k (Eq.trans (Eq.refl (Ord.compare a k)) h)) v)) l r) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.alter.match_3.{(max u v) + 1} (fun x ↦ Std.DTreeMap.Internal.Impl.SizedBalancedTree.{u, v} α β (HSub.hSub (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner sz k v l r)) (OfNat.ofNat 1)) (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner sz k v l r)) (OfNat.ofNat 1))) (Ord.compare a k) (fun h ↦ Std.DTreeMap.Internal.Impl.alter.match_1 l (fun x ↦ Std.DTreeMap.Internal.Impl.SizedBalancedTree.{u, v} α β (HSub.hSub (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner sz k v l r)) (OfNat.ofNat 1)) (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner sz k v l r)) (OfNat.ofNat 1))) (Std.DTreeMap.Internal.Impl.alter a (fun x ↦ Option.map f x) l (Std.DTreeMap.Internal.Impl.minView._proof_9 sz k v l r htb)) fun d hd hd'₁ hd'₂ ↦ Std.DTreeMap.Internal.Impl.SizedBalancedTree.mk (Std.DTreeMap.Internal.Impl.balance k v d r (Std.DTreeMap.Internal.Impl.minView._proof_15 sz k v l r htb d hd) (Std.DTreeMap.Internal.Impl.minView._proof_11 sz k v l r htb) (Std.DTreeMap.Internal.Impl.alter._proof_1 sz k v l r htb d hd'₁ hd'₂)) (Std.DTreeMap.Internal.Impl.alter._proof_13 sz k v l r htb d hd hd'₁ hd'₂) (Std.DTreeMap.Internal.Impl.alter._proof_15 sz k v l r htb d hd hd'₁ hd'₂) (Std.DTreeMap.Internal.Impl.alter._proof_18 sz k v l r htb d hd hd'₁ hd'₂)) (fun h ↦ Std.DTreeMap.Internal.Impl.alter.match_1 r (fun x ↦ Std.DTreeMap.Internal.Impl.SizedBalancedTree.{u, v} α β (HSub.hSub (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner sz k v l r)) (OfNat.ofNat 1)) (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner sz k v l r)) (OfNat.ofNat 1))) (Std.DTreeMap.Internal.Impl.alter a (fun x ↦ Option.map f x) r (Std.DTreeMap.Internal.Impl.minView._proof_11 sz k v l r htb)) fun d hd hd'₁ hd'₂ ↦ Std.DTreeMap.Internal.Impl.SizedBalancedTree.mk (Std.DTreeMap.Internal.Impl.balance k v l d (Std.DTreeMap.Internal.Impl.minView._proof_9 sz k v l r htb) (Std.DTreeMap.Internal.Impl.minView._proof_15 sz k v l r htb d hd) (Std.DTreeMap.Internal.Impl.alter._proof_2 sz k v l r htb d hd'₁ hd'₂)) (Std.DTreeMap.Internal.Impl.alter._proof_20 sz k v l r htb d hd hd'₁ hd'₂) (Std.DTreeMap.Internal.Impl.alter._proof_22 sz k v l r htb d hd hd'₁ hd'₂) (Std.DTreeMap.Internal.Impl.alter._proof_25 sz k v l r htb d hd hd'₁ hd'₂)) fun h ↦ Std.DTreeMap.Internal.Impl.«getThenInsertIfNew?».match_1 a (fun x ↦ Std.DTreeMap.Internal.Impl.SizedBalancedTree.{u, v} α β (HSub.hSub (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner sz k v l r)) (OfNat.ofNat 1)) (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner sz k v l r)) (OfNat.ofNat 1))) (Option.map f (Option.some (cast (Std.DTreeMap.Internal.Impl.alter._proof_3 a k (Eq.trans (Eq.refl (Ord.compare a k)) h)) v))) (fun _ ↦ Std.DTreeMap.Internal.Impl.SizedBalancedTree.mk (Std.DTreeMap.Internal.Impl.glue l r (Std.DTreeMap.Internal.Impl.minView._proof_9 sz k v l r htb) (Std.DTreeMap.Internal.Impl.minView._proof_11 sz k v l r htb) (Std.DTreeMap.Internal.Impl.minView._proof_13 sz k v l r htb)) (Std.DTreeMap.Internal.Impl.erase._proof_34 sz k v l r htb) (Std.DTreeMap.Internal.Impl.erase._proof_36 sz k v l r htb) (Std.DTreeMap.Internal.Impl.alter._proof_28 sz k v l r htb)) fun v ↦ Std.DTreeMap.Internal.Impl.SizedBalancedTree.mk (Std.DTreeMap.Internal.Impl.inner sz a v l r) (Std.DTreeMap.Internal.Impl.alter._proof_30 a sz k v l r htb v) (Std.DTreeMap.Internal.Impl.alter._proof_33 a sz k v l r htb v) (Std.DTreeMap.Internal.Impl.alter._proof_35 a sz k v l r htb v)))) (Ord.compare a k) (fun h h ↦ Eq.ndrec (fun heq ↦ id fun hmb ↦ of_eq_true (Eq.trans (congrArg (Eq (Std.DTreeMap.Internal.Impl.inner sz k v (Std.DTreeMap.Internal.Impl.modify a f l) r)) (Eq.trans (Std.DTreeMap.Internal.Impl.balance.congr_simp k v v (Eq.refl v) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.alter a (fun x ↦ Option.map f x) l (Std.DTreeMap.Internal.Impl.minView._proof_9 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.modify a f l) (Eq.symm (ihl (Std.DTreeMap.Internal.Impl.Balanced.left htb))) r r (Eq.refl r) (Std.DTreeMap.Internal.Impl.minView._proof_15 sz k v l r htb (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.alter a (fun x ↦ Option.map f x) l (Std.DTreeMap.Internal.Impl.minView._proof_9 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.balanced_impl (Std.DTreeMap.Internal.Impl.alter a (fun x ↦ Option.map f x) l (Std.DTreeMap.Internal.Impl.minView._proof_9 sz k v l r htb)))) (Std.DTreeMap.Internal.Impl.minView._proof_11 sz k v l r htb) (Std.DTreeMap.Internal.Impl.alter._proof_1 sz k v l r htb (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.alter a (fun x ↦ Option.map f x) l (Std.DTreeMap.Internal.Impl.minView._proof_9 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.lb_le_size_impl (Std.DTreeMap.Internal.Impl.alter a (fun x ↦ Option.map f x) l (Std.DTreeMap.Internal.Impl.minView._proof_9 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.size_impl_le_ub (Std.DTreeMap.Internal.Impl.alter a (fun x ↦ Option.map f x) l (Std.DTreeMap.Internal.Impl.minView._proof_9 sz k v l r htb))))) ((fun x_0 ↦ (fun x_0 ↦ Std.DTreeMap.Internal.Impl.balance_eq_inner hmb) x_0) (Eq.ndrec (Eq.ndrec (Std.DTreeMap.Internal.Impl.alter._proof_1 sz k v l r htb (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.alter a (fun x ↦ Option.map f x) l (Std.DTreeMap.Internal.Impl.minView._proof_9 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.lb_le_size_impl (Std.DTreeMap.Internal.Impl.alter a (fun x ↦ Option.map f x) l (Std.DTreeMap.Internal.Impl.minView._proof_9 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.size_impl_le_ub (Std.DTreeMap.Internal.Impl.alter a (fun x ↦ Option.map f x) l (Std.DTreeMap.Internal.Impl.minView._proof_9 sz k v l r htb)))) (Eq.refl r)) (Eq.symm (ihl (Std.DTreeMap.Internal.Impl.Balanced.left htb))))))) (eq_self (Std.DTreeMap.Internal.Impl.inner sz k v (Std.DTreeMap.Internal.Impl.modify a f l) r)))) (Eq.symm h) (Eq.refl (Ord.compare a k))) (fun h h ↦ Eq.ndrec (fun heq ↦ id fun hmb ↦ of_eq_true (Eq.trans (congrArg (Eq (Std.DTreeMap.Internal.Impl.inner sz k v l (Std.DTreeMap.Internal.Impl.modify a f r))) (Eq.trans (Std.DTreeMap.Internal.Impl.balance.congr_simp k v v (Eq.refl v) l l (Eq.refl l) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.alter a (fun x ↦ Option.map f x) r (Std.DTreeMap.Internal.Impl.minView._proof_11 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.modify a f r) (Eq.symm (ihr (Std.DTreeMap.Internal.Impl.Balanced.right htb))) (Std.DTreeMap.Internal.Impl.minView._proof_9 sz k v l r htb) (Std.DTreeMap.Internal.Impl.minView._proof_15 sz k v l r htb (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.alter a (fun x ↦ Option.map f x) r (Std.DTreeMap.Internal.Impl.minView._proof_11 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.balanced_impl (Std.DTreeMap.Internal.Impl.alter a (fun x ↦ Option.map f x) r (Std.DTreeMap.Internal.Impl.minView._proof_11 sz k v l r htb)))) (Std.DTreeMap.Internal.Impl.alter._proof_2 sz k v l r htb (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.alter a (fun x ↦ Option.map f x) r (Std.DTreeMap.Internal.Impl.minView._proof_11 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.lb_le_size_impl (Std.DTreeMap.Internal.Impl.alter a (fun x ↦ Option.map f x) r (Std.DTreeMap.Internal.Impl.minView._proof_11 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.size_impl_le_ub (Std.DTreeMap.Internal.Impl.alter a (fun x ↦ Option.map f x) r (Std.DTreeMap.Internal.Impl.minView._proof_11 sz k v l r htb))))) ((fun x_0 ↦ (fun x_0 ↦ Std.DTreeMap.Internal.Impl.balance_eq_inner hmb) x_0) (Eq.ndrec (Std.DTreeMap.Internal.Impl.alter._proof_2 sz k v l r htb (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.alter a (fun x ↦ Option.map f x) r (Std.DTreeMap.Internal.Impl.minView._proof_11 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.lb_le_size_impl (Std.DTreeMap.Internal.Impl.alter a (fun x ↦ Option.map f x) r (Std.DTreeMap.Internal.Impl.minView._proof_11 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.size_impl_le_ub (Std.DTreeMap.Internal.Impl.alter a (fun x ↦ Option.map f x) r (Std.DTreeMap.Internal.Impl.minView._proof_11 sz k v l r htb)))) (Eq.symm (ihr (Std.DTreeMap.Internal.Impl.Balanced.right htb))))))) (eq_self (Std.DTreeMap.Internal.Impl.inner sz k v l (Std.DTreeMap.Internal.Impl.modify a f r))))) (Eq.symm h) (Eq.refl (Ord.compare a k))) (fun h h ↦ Eq.ndrec (fun heq ↦ id fun hmb ↦ Eq.refl (Std.DTreeMap.Internal.Impl.inner sz a (f (cast (Std.DTreeMap.Internal.Impl.alter._proof_3 a k (Eq.trans heq (Eq.refl Ordering.eq))) v)) l r)) (Eq.symm h) (Eq.refl (Ord.compare a k))) (Eq.refl (Ord.compare a k)) (Eq.mp (congrArg (fun l ↦ Std.DTreeMap.Internal.Impl.Balanced l) (Std.DTreeMap.Internal.Impl.modify.eq_2 a f sz k v l r)) hmb)))) (fun htb ↦ Eq.refl (Std.DTreeMap.Internal.Impl.modify a f (Std.DTreeMap.Internal.Impl.leaf))) t htb
has type
  (size : Nat) → (k : α) → (v : β k) → (l : Std.DTreeMap.Internal.Impl.{u, v} α β) → (r : Std.DTreeMap.Internal.Impl.{u, v} α β) → (fun x ↦ (hr : Std.DTreeMap.Internal.Impl.Balanced x) → (h : Or (Std.DTreeMap.Internal.Impl.BalanceLErasePrecond (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k v l r)) (Std.DTreeMap.Internal.Impl.size x)) (Std.DTreeMap.Internal.Impl.BalanceLErasePrecond (Std.DTreeMap.Internal.Impl.size x) (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k v l r)))) → (fun r hr h ↦ Std.DTreeMap.Internal.Impl.{u, v} α β) x hr h) l → (fun x ↦ (hr : Std.DTreeMap.Internal.Impl.Balanced x) → (h : Or (Std.DTreeMap.Internal.Impl.BalanceLErasePrecond (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k v l r)) (Std.DTreeMap.Internal.Impl.size x)) (Std.DTreeMap.Internal.Impl.BalanceLErasePrecond (Std.DTreeMap.Internal.Impl.size x) (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k v l r)))) → (fun r hr h ↦ Std.DTreeMap.Internal.Impl.{u, v} α β) x hr h) r → Std.DTreeMap.Internal.Impl.Balanced (Std.DTreeMap.Internal.Impl.inner size k v l r) → Or (Std.DTreeMap.Internal.Impl.BalanceLErasePrecond (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k v l r)) (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k v l r))) (Std.DTreeMap.Internal.Impl.BalanceLErasePrecond (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k v l r)) (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k v l r))) → Std.DTreeMap.Internal.Impl.{u, v} α β
but is expected to have type
  (size : Nat) → (k : α) → (v : β k) → (l : Std.DTreeMap.Internal.Impl.{u, v} α β) → (r : Std.DTreeMap.Internal.Impl.{u, v} α β) → (fun x ↦ (hr : Std.DTreeMap.Internal.Impl.Balanced x) → (h : Or (Std.DTreeMap.Internal.Impl.BalanceLErasePrecond (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k v l r)) (Std.DTreeMap.Internal.Impl.size x)) (Std.DTreeMap.Internal.Impl.BalanceLErasePrecond (Std.DTreeMap.Internal.Impl.size x) (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k v l r)))) → (fun r hr h ↦ Std.DTreeMap.Internal.Impl.{u, v} α β) x hr h) l → (fun x ↦ (hr : Std.DTreeMap.Internal.Impl.Balanced x) → (h : Or (Std.DTreeMap.Internal.Impl.BalanceLErasePrecond (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k v l r)) (Std.DTreeMap.Internal.Impl.size x)) (Std.DTreeMap.Internal.Impl.BalanceLErasePrecond (Std.DTreeMap.Internal.Impl.size x) (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k v l r)))) → (fun r hr h ↦ Std.DTreeMap.Internal.Impl.{u, v} α β) x hr h) r → (fun x ↦ (hr : Std.DTreeMap.Internal.Impl.Balanced x) → (h : Or (Std.DTreeMap.Internal.Impl.BalanceLErasePrecond (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k v l r)) (Std.DTreeMap.Internal.Impl.size x)) (Std.DTreeMap.Internal.Impl.BalanceLErasePrecond (Std.DTreeMap.Internal.Impl.size x) (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k v l r)))) → (fun r hr h ↦ Std.DTreeMap.Internal.Impl.{u, v} α β) x hr h) (Std.DTreeMap.Internal.Impl.inner size k v l r)
theorem Std.DTreeMap.Internal.Impl.Const.modify_eq_alter.{u, v} : ∀ {α : Type u}, ∀ {β : Type v}, ∀ [inst : Ord.{u} α], [Std.TransOrd α] → ∀ {t : Std.DTreeMap.Internal.Impl.{u, v} α fun x ↦ β}, ∀ {a : α}, ∀ {f : β → β}, ∀ (htb : Std.DTreeMap.Internal.Impl.Balanced t), Eq (Std.DTreeMap.Internal.Impl.Const.modify a f t) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.Const.alter a (fun x ↦ Option.map f x) t htb)) := fun {α β} [inst : Ord.{u} #1] [inst : Std.TransOrd #2] {t a f} htb ↦ Std.DTreeMap.Internal.Impl.rec (fun sz k v l r ihl ihr htb ↦ let hmb : Std.DTreeMap.Internal.Impl.Balanced (Std.DTreeMap.Internal.Impl.Const.modify a f (Std.DTreeMap.Internal.Impl.inner sz k v l r)) := Std.DTreeMap.Internal.Impl.Const.balanced_modify htb
Eq.mpr (id (congrArg (fun _a ↦ Eq _a (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.Const.alter a (fun x ↦ Option.map f x) (Std.DTreeMap.Internal.Impl.inner sz k v l r) htb))) (Std.DTreeMap.Internal.Impl.Const.modify.eq_2 a f sz k v l r))) (Eq.mpr (id (congrArg (fun _a ↦ Eq (Std.DTreeMap.Internal.Impl.insert.match_3.{(max u v) + 1} (fun x ↦ Std.DTreeMap.Internal.Impl.{u, v} α fun x ↦ β) (Ord.compare a k) (fun _ ↦ Std.DTreeMap.Internal.Impl.inner sz k v (Std.DTreeMap.Internal.Impl.Const.modify a f l) r) (fun _ ↦ Std.DTreeMap.Internal.Impl.inner sz k v l (Std.DTreeMap.Internal.Impl.Const.modify a f r)) fun _ ↦ Std.DTreeMap.Internal.Impl.inner sz a (f v) l r) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl _a)) (Std.DTreeMap.Internal.Impl.Const.alter.eq_2 a (fun x ↦ Option.map f x) sz k v l r htb))) (_private.Std.Data.DTreeMap.Internal.WF.Lemmas.0.Std.DTreeMap.Internal.Impl.insert.match_3.splitter.{0} (fun x ↦ Eq (Ord.compare a k) x → Std.DTreeMap.Internal.Impl.Balanced (Std.DTreeMap.Internal.Impl.insert.match_3.{(max u v) + 1} (fun x ↦ Std.DTreeMap.Internal.Impl.{u, v} α fun x ↦ β) (Ord.compare a k) (fun _ ↦ Std.DTreeMap.Internal.Impl.inner sz k v (Std.DTreeMap.Internal.Impl.Const.modify a f l) r) (fun _ ↦ Std.DTreeMap.Internal.Impl.inner sz k v l (Std.DTreeMap.Internal.Impl.Const.modify a f r)) fun _ ↦ Std.DTreeMap.Internal.Impl.inner sz a (f v) l r) → Eq (Std.DTreeMap.Internal.Impl.insert.match_3.{(max u v) + 1} (fun x ↦ Std.DTreeMap.Internal.Impl.{u, v} α fun x ↦ β) (Ord.compare a k) (fun _ ↦ Std.DTreeMap.Internal.Impl.inner sz k v (Std.DTreeMap.Internal.Impl.Const.modify a f l) r) (fun _ ↦ Std.DTreeMap.Internal.Impl.inner sz k v l (Std.DTreeMap.Internal.Impl.Const.modify a f r)) fun _ ↦ Std.DTreeMap.Internal.Impl.inner sz a (f v) l r) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.insert.match_3.{(max u v) + 1} (fun x ↦ Std.DTreeMap.Internal.Impl.SizedBalancedTree.{u, v} α (fun x ↦ β) (HSub.hSub (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner sz k v l r)) (OfNat.ofNat 1)) (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner sz k v l r)) (OfNat.ofNat 1))) (Ord.compare a k) (fun _ ↦ Std.DTreeMap.Internal.Impl.Const.alter.match_1 l (fun x ↦ Std.DTreeMap.Internal.Impl.SizedBalancedTree.{u, v} α (fun x ↦ β) (HSub.hSub (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner sz k v l r)) (OfNat.ofNat 1)) (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner sz k v l r)) (OfNat.ofNat 1))) (Std.DTreeMap.Internal.Impl.Const.alter a (fun x ↦ Option.map f x) l (Std.DTreeMap.Internal.Impl.Const.alter._proof_18 sz k v l r htb)) fun d hd hd'₁ hd'₂ ↦ Std.DTreeMap.Internal.Impl.SizedBalancedTree.mk (Std.DTreeMap.Internal.Impl.balance k v d r (Std.DTreeMap.Internal.Impl.Const.alter._proof_20 sz k v l r htb d hd) (Std.DTreeMap.Internal.Impl.Const.alter._proof_22 sz k v l r htb) (Std.DTreeMap.Internal.Impl.Const.alter._proof_1 sz k v l r htb d hd'₁ hd'₂)) (Std.DTreeMap.Internal.Impl.Const.alter._proof_24 sz k v l r htb d hd hd'₁ hd'₂) (Std.DTreeMap.Internal.Impl.Const.alter._proof_27 sz k v l r htb d hd hd'₁ hd'₂) (Std.DTreeMap.Internal.Impl.Const.alter._proof_30 sz k v l r htb d hd hd'₁ hd'₂)) (fun _ ↦ Std.DTreeMap.Internal.Impl.Const.alter.match_1 r (fun x ↦ Std.DTreeMap.Internal.Impl.SizedBalancedTree.{u, v} α (fun x ↦ β) (HSub.hSub (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner sz k v l r)) (OfNat.ofNat 1)) (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner sz k v l r)) (OfNat.ofNat 1))) (Std.DTreeMap.Internal.Impl.Const.alter a (fun x ↦ Option.map f x) r (Std.DTreeMap.Internal.Impl.Const.alter._proof_22 sz k v l r htb)) fun d hd hd'₁ hd'₂ ↦ Std.DTreeMap.Internal.Impl.SizedBalancedTree.mk (Std.DTreeMap.Internal.Impl.balance k v l d (Std.DTreeMap.Internal.Impl.Const.alter._proof_18 sz k v l r htb) (Std.DTreeMap.Internal.Impl.Const.alter._proof_20 sz k v l r htb d hd) (Std.DTreeMap.Internal.Impl.Const.alter._proof_2 sz k v l r htb d hd'₁ hd'₂)) (Std.DTreeMap.Internal.Impl.Const.alter._proof_32 sz k v l r htb d hd hd'₁ hd'₂) (Std.DTreeMap.Internal.Impl.Const.alter._proof_35 sz k v l r htb d hd hd'₁ hd'₂) (Std.DTreeMap.Internal.Impl.Const.alter._proof_38 sz k v l r htb d hd hd'₁ hd'₂)) fun _ ↦ Std.DTreeMap.Internal.Impl.Const.«getThenInsertIfNew?».match_1 (fun x ↦ Std.DTreeMap.Internal.Impl.SizedBalancedTree.{u, v} α (fun x ↦ β) (HSub.hSub (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner sz k v l r)) (OfNat.ofNat 1)) (HAdd.hAdd (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner sz k v l r)) (OfNat.ofNat 1))) (Option.map f (Option.some v)) (fun _ ↦ Std.DTreeMap.Internal.Impl.SizedBalancedTree.mk (Std.DTreeMap.Internal.Impl.glue l r (Std.DTreeMap.Internal.Impl.Const.alter._proof_18 sz k v l r htb) (Std.DTreeMap.Internal.Impl.Const.alter._proof_22 sz k v l r htb) (Std.DTreeMap.Internal.Impl.Const.alter._proof_40 sz k v l r htb)) (Std.DTreeMap.Internal.Impl.Const.alter._proof_42 sz k v l r htb) (Std.DTreeMap.Internal.Impl.Const.alter._proof_45 sz k v l r htb) (Std.DTreeMap.Internal.Impl.Const.alter._proof_48 sz k v l r htb)) fun v ↦ Std.DTreeMap.Internal.Impl.SizedBalancedTree.mk (Std.DTreeMap.Internal.Impl.inner sz a v l r) (Std.DTreeMap.Internal.Impl.Const.alter._proof_50 a sz k v l r htb v) (Std.DTreeMap.Internal.Impl.Const.alter._proof_53 a sz k v l r htb v) (Std.DTreeMap.Internal.Impl.Const.alter._proof_56 a sz k v l r htb v)))) (Ord.compare a k) (fun a h ↦ Eq.ndrec (fun heq ↦ id fun hmb ↦ id (of_eq_true (Eq.trans (congrArg (Eq (Std.DTreeMap.Internal.Impl.inner sz k v (Std.DTreeMap.Internal.Impl.Const.modify a f l) r)) (Eq.trans (Std.DTreeMap.Internal.Impl.balance.congr_simp k v v (Eq.refl v) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.Const.alter a (fun x ↦ Option.map f x) l (Std.DTreeMap.Internal.Impl.Const.alter._proof_18 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.Const.modify a f l) (Eq.symm (ihl (Std.DTreeMap.Internal.Impl.Balanced.left htb))) r r (Eq.refl r) (Std.DTreeMap.Internal.Impl.Const.alter._proof_20 sz k v l r htb (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.Const.alter a (fun x ↦ Option.map f x) l (Std.DTreeMap.Internal.Impl.Const.alter._proof_18 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.balanced_impl (Std.DTreeMap.Internal.Impl.Const.alter a (fun x ↦ Option.map f x) l (Std.DTreeMap.Internal.Impl.Const.alter._proof_18 sz k v l r htb)))) (Std.DTreeMap.Internal.Impl.Const.alter._proof_22 sz k v l r htb) (Std.DTreeMap.Internal.Impl.Const.alter._proof_1 sz k v l r htb (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.Const.alter a (fun x ↦ Option.map f x) l (Std.DTreeMap.Internal.Impl.Const.alter._proof_18 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.lb_le_size_impl (Std.DTreeMap.Internal.Impl.Const.alter a (fun x ↦ Option.map f x) l (Std.DTreeMap.Internal.Impl.Const.alter._proof_18 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.size_impl_le_ub (Std.DTreeMap.Internal.Impl.Const.alter a (fun x ↦ Option.map f x) l (Std.DTreeMap.Internal.Impl.Const.alter._proof_18 sz k v l r htb))))) ((fun x_0 ↦ (fun x_0 ↦ Std.DTreeMap.Internal.Impl.balance_eq_inner hmb) x_0) (Eq.ndrec (Eq.ndrec (Std.DTreeMap.Internal.Impl.Const.alter._proof_1 sz k v l r htb (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.Const.alter a (fun x ↦ Option.map f x) l (Std.DTreeMap.Internal.Impl.Const.alter._proof_18 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.lb_le_size_impl (Std.DTreeMap.Internal.Impl.Const.alter a (fun x ↦ Option.map f x) l (Std.DTreeMap.Internal.Impl.Const.alter._proof_18 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.size_impl_le_ub (Std.DTreeMap.Internal.Impl.Const.alter a (fun x ↦ Option.map f x) l (Std.DTreeMap.Internal.Impl.Const.alter._proof_18 sz k v l r htb)))) (Eq.refl r)) (Eq.symm (ihl (Std.DTreeMap.Internal.Impl.Balanced.left htb))))))) (eq_self (Std.DTreeMap.Internal.Impl.inner sz k v (Std.DTreeMap.Internal.Impl.Const.modify a f l) r))))) (Eq.symm h) (Eq.refl (Ord.compare a k))) (fun a h ↦ Eq.ndrec (fun heq ↦ id fun hmb ↦ id (of_eq_true (Eq.trans (congrArg (Eq (Std.DTreeMap.Internal.Impl.inner sz k v l (Std.DTreeMap.Internal.Impl.Const.modify a f r))) (Eq.trans (Std.DTreeMap.Internal.Impl.balance.congr_simp k v v (Eq.refl v) l l (Eq.refl l) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.Const.alter a (fun x ↦ Option.map f x) r (Std.DTreeMap.Internal.Impl.Const.alter._proof_22 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.Const.modify a f r) (Eq.symm (ihr (Std.DTreeMap.Internal.Impl.Balanced.right htb))) (Std.DTreeMap.Internal.Impl.Const.alter._proof_18 sz k v l r htb) (Std.DTreeMap.Internal.Impl.Const.alter._proof_20 sz k v l r htb (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.Const.alter a (fun x ↦ Option.map f x) r (Std.DTreeMap.Internal.Impl.Const.alter._proof_22 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.balanced_impl (Std.DTreeMap.Internal.Impl.Const.alter a (fun x ↦ Option.map f x) r (Std.DTreeMap.Internal.Impl.Const.alter._proof_22 sz k v l r htb)))) (Std.DTreeMap.Internal.Impl.Const.alter._proof_2 sz k v l r htb (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.Const.alter a (fun x ↦ Option.map f x) r (Std.DTreeMap.Internal.Impl.Const.alter._proof_22 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.lb_le_size_impl (Std.DTreeMap.Internal.Impl.Const.alter a (fun x ↦ Option.map f x) r (Std.DTreeMap.Internal.Impl.Const.alter._proof_22 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.size_impl_le_ub (Std.DTreeMap.Internal.Impl.Const.alter a (fun x ↦ Option.map f x) r (Std.DTreeMap.Internal.Impl.Const.alter._proof_22 sz k v l r htb))))) ((fun x_0 ↦ (fun x_0 ↦ Std.DTreeMap.Internal.Impl.balance_eq_inner hmb) x_0) (Eq.ndrec (Std.DTreeMap.Internal.Impl.Const.alter._proof_2 sz k v l r htb (Std.DTreeMap.Internal.Impl.SizedBalancedTree.impl (Std.DTreeMap.Internal.Impl.Const.alter a (fun x ↦ Option.map f x) r (Std.DTreeMap.Internal.Impl.Const.alter._proof_22 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.lb_le_size_impl (Std.DTreeMap.Internal.Impl.Const.alter a (fun x ↦ Option.map f x) r (Std.DTreeMap.Internal.Impl.Const.alter._proof_22 sz k v l r htb))) (Std.DTreeMap.Internal.Impl.SizedBalancedTree.size_impl_le_ub (Std.DTreeMap.Internal.Impl.Const.alter a (fun x ↦ Option.map f x) r (Std.DTreeMap.Internal.Impl.Const.alter._proof_22 sz k v l r htb)))) (Eq.symm (ihr (Std.DTreeMap.Internal.Impl.Balanced.right htb))))))) (eq_self (Std.DTreeMap.Internal.Impl.inner sz k v l (Std.DTreeMap.Internal.Impl.Const.modify a f r)))))) (Eq.symm h) (Eq.refl (Ord.compare a k))) (fun a h ↦ Eq.ndrec (fun heq ↦ id fun hmb ↦ Eq.refl (Std.DTreeMap.Internal.Impl.inner sz a (f v) l r)) (Eq.symm h) (Eq.refl (Ord.compare a k))) (Eq.refl (Ord.compare a k)) (Eq.mp (congrArg (fun _a ↦ Std.DTreeMap.Internal.Impl.Balanced _a) (Std.DTreeMap.Internal.Impl.Const.modify.eq_2 a f sz k v l r)) hmb)))) (fun htb ↦ Eq.refl (Std.DTreeMap.Internal.Impl.Const.modify a f (Std.DTreeMap.Internal.Impl.leaf))) t htb
has type
  (size : Nat) → (k : α) → (v : (fun x ↦ β) k) → (l : Std.DTreeMap.Internal.Impl.{u, v} α fun x ↦ β) → (r : Std.DTreeMap.Internal.Impl.{u, v} α fun x ↦ β) → (fun x ↦ (hr : Std.DTreeMap.Internal.Impl.Balanced x) → (h : Or (Std.DTreeMap.Internal.Impl.BalanceLErasePrecond (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k v l r)) (Std.DTreeMap.Internal.Impl.size x)) (Std.DTreeMap.Internal.Impl.BalanceLErasePrecond (Std.DTreeMap.Internal.Impl.size x) (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k v l r)))) → (fun r hr h ↦ Std.DTreeMap.Internal.Impl.{u, v} α fun x ↦ β) x hr h) l → (fun x ↦ (hr : Std.DTreeMap.Internal.Impl.Balanced x) → (h : Or (Std.DTreeMap.Internal.Impl.BalanceLErasePrecond (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k v l r)) (Std.DTreeMap.Internal.Impl.size x)) (Std.DTreeMap.Internal.Impl.BalanceLErasePrecond (Std.DTreeMap.Internal.Impl.size x) (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k v l r)))) → (fun r hr h ↦ Std.DTreeMap.Internal.Impl.{u, v} α fun x ↦ β) x hr h) r → Std.DTreeMap.Internal.Impl.Balanced (Std.DTreeMap.Internal.Impl.inner size k v l r) → Or (Std.DTreeMap.Internal.Impl.BalanceLErasePrecond (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k v l r)) (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k v l r))) (Std.DTreeMap.Internal.Impl.BalanceLErasePrecond (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k v l r)) (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k v l r))) → Std.DTreeMap.Internal.Impl.{u, v} α fun x ↦ β
but is expected to have type
  (size : Nat) → (k : α) → (v : (fun x ↦ β) k) → (l : Std.DTreeMap.Internal.Impl.{u, v} α fun x ↦ β) → (r : Std.DTreeMap.Internal.Impl.{u, v} α fun x ↦ β) → (fun x ↦ (hr : Std.DTreeMap.Internal.Impl.Balanced x) → (h : Or (Std.DTreeMap.Internal.Impl.BalanceLErasePrecond (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k v l r)) (Std.DTreeMap.Internal.Impl.size x)) (Std.DTreeMap.Internal.Impl.BalanceLErasePrecond (Std.DTreeMap.Internal.Impl.size x) (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k v l r)))) → (fun r hr h ↦ Std.DTreeMap.Internal.Impl.{u, v} α fun x ↦ β) x hr h) l → (fun x ↦ (hr : Std.DTreeMap.Internal.Impl.Balanced x) → (h : Or (Std.DTreeMap.Internal.Impl.BalanceLErasePrecond (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k v l r)) (Std.DTreeMap.Internal.Impl.size x)) (Std.DTreeMap.Internal.Impl.BalanceLErasePrecond (Std.DTreeMap.Internal.Impl.size x) (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k v l r)))) → (fun r hr h ↦ Std.DTreeMap.Internal.Impl.{u, v} α fun x ↦ β) x hr h) r → (fun x ↦ (hr : Std.DTreeMap.Internal.Impl.Balanced x) → (h : Or (Std.DTreeMap.Internal.Impl.BalanceLErasePrecond (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k v l r)) (Std.DTreeMap.Internal.Impl.size x)) (Std.DTreeMap.Internal.Impl.BalanceLErasePrecond (Std.DTreeMap.Internal.Impl.size x) (Std.DTreeMap.Internal.Impl.size (Std.DTreeMap.Internal.Impl.inner size k v l r)))) → (fun r hr h ↦ Std.DTreeMap.Internal.Impl.{u, v} α fun x ↦ β) x hr h) (Std.DTreeMap.Internal.Impl.inner size k v l r)
theorem Std.DTreeMap.Internal.Impl.«minKey!».eq_def.{u, v} : ∀ {α : Type u}, ∀ {β : α → Type v}, ∀ [inst : Inhabited.{u + 1} α], ∀ (x : Std.DTreeMap.Internal.Impl.{u, v} α β), Eq (Std.DTreeMap.Internal.Impl.«minKey!» x) (Std.DTreeMap.Internal.Impl.«minEntry?».match_1 (fun x ↦ α) x (fun _ ↦ panicWithPosWithDecl "Std.Data.DTreeMap.Internal.Queries" "Std.DTreeMap.Internal.Impl.minKey!" (OfNat.ofNat 413) (OfNat.ofNat 13) "Map is empty") (fun size k v r ↦ k) fun size k v l size k v l r h r ↦ Std.DTreeMap.Internal.Impl.«minKey!» l) := fun {α β} [inst : Inhabited.{u + 1} #1] x ↦ id (Eq.trans (WellFounded.fix_eq (Std.DTreeMap.Internal.Impl.«minKey!»._proof_1) (fun a a ↦ Std.DTreeMap.Internal.Impl.«minEntry?».match_1 (fun x ↦ ((y : Std.DTreeMap.Internal.Impl.{u, v} α β) → (invImage (fun x ↦ x) (sizeOfWFRel)).rel y x → α) → α) a (fun _ x ↦ panicWithPosWithDecl "Std.Data.DTreeMap.Internal.Queries" "Std.DTreeMap.Internal.Impl.minKey!" (OfNat.ofNat 413) (OfNat.ofNat 13) "Map is empty") (fun size k v r x ↦ k) (fun size k v l size k v l r h r x ↦ x l (Std.DTreeMap.Internal.Impl.«minKey!»._proof_2 size k v l size k v l r h r)) a) x) (Eq.mpr (id (congrFun' (congrArg (Eq) (_private.Std.Data.DTreeMap.Internal.Queries.0.Std.DTreeMap.Internal.Impl.«minEntry?».match_1._arg_pusher (fun x ↦ α) (Std.DTreeMap.Internal.Impl.{u, v} α β) (fun x ↦ α) (Std.DTreeMap.Internal.Impl.«minKey!») (fun x y ↦ (invImage (fun x ↦ x) (sizeOfWFRel)).rel y x) x (fun _ x ↦ panicWithPosWithDecl "Std.Data.DTreeMap.Internal.Queries" "Std.DTreeMap.Internal.Impl.minKey!" (OfNat.ofNat 413) (OfNat.ofNat 13) "Map is empty") (fun size k v r x ↦ k) fun size k v l size k v l r h r x ↦ x l (Std.DTreeMap.Internal.Impl.«minKey!»._proof_2 size k v l size k v l r h r))) (Std.DTreeMap.Internal.Impl.«minEntry?».match_1 (fun x ↦ α) x (fun _ ↦ panicWithPosWithDecl "Std.Data.DTreeMap.Internal.Queries" "Std.DTreeMap.Internal.Impl.minKey!" (OfNat.ofNat 413) (OfNat.ofNat 13) "Map is empty") (fun size k v r ↦ k) fun size k v l size k v l r h r ↦ Std.DTreeMap.Internal.Impl.«minKey!» l))) (Eq.refl (Std.DTreeMap.Internal.Impl.«minEntry?».match_1 (fun x ↦ α) x (fun _ ↦ panicWithPosWithDecl "Std.Data.DTreeMap.Internal.Queries" "Std.DTreeMap.Internal.Impl.minKey!" (OfNat.ofNat 413) (OfNat.ofNat 13) "Map is empty") (fun size k v r ↦ k) fun size k v l size k v l r h r ↦ Std.DTreeMap.Internal.Impl.«minKey!» l))))
has type
  (size : Nat) → (k : α) → (v : β k) → (l : Std.DTreeMap.Internal.Impl.{u, v} α β) → (r : Std.DTreeMap.Internal.Impl.{u, v} α β) → (fun x ↦ (fun x ↦ ((y : Std.DTreeMap.Internal.Impl.{u, v} α β) → (invImage (fun x ↦ x) (sizeOfWFRel)).rel y x → α) → α) (Std.DTreeMap.Internal.Impl.inner size k v x r)) l → (fun x ↦ (fun x ↦ ((y : Std.DTreeMap.Internal.Impl.{u, v} α β) → (invImage (fun x ↦ x) (sizeOfWFRel)).rel y x → α) → α) (Std.DTreeMap.Internal.Impl.inner size k v x r)) r → ((y : Std.DTreeMap.Internal.Impl.{u, v} α β) → (invImage (fun x ↦ x) (sizeOfWFRel)).rel y (Std.DTreeMap.Internal.Impl.inner size k v (namedPattern (Std.DTreeMap.Internal.Impl.inner size k v l r) (Std.DTreeMap.Internal.Impl.inner size k v l r) (Eq.refl (Std.DTreeMap.Internal.Impl.inner size k v l r))) r) → α) → α
but is expected to have type
  (size : Nat) → (k : α) → (v : β k) → (l : Std.DTreeMap.Internal.Impl.{u, v} α β) → (r : Std.DTreeMap.Internal.Impl.{u, v} α β) → (fun x ↦ (fun x ↦ ((y : Std.DTreeMap.Internal.Impl.{u, v} α β) → (invImage (fun x ↦ x) (sizeOfWFRel)).rel y x → α) → α) (Std.DTreeMap.Internal.Impl.inner size k v x r)) l → (fun x ↦ (fun x ↦ ((y : Std.DTreeMap.Internal.Impl.{u, v} α β) → (invImage (fun x ↦ x) (sizeOfWFRel)).rel y x → α) → α) (Std.DTreeMap.Internal.Impl.inner size k v x r)) r → (fun x ↦ (fun x ↦ ((y : Std.DTreeMap.Internal.Impl.{u, v} α β) → (invImage (fun x ↦ x) (sizeOfWFRel)).rel y x → α) → α) (Std.DTreeMap.Internal.Impl.inner size k v x r)) (Std.DTreeMap.Internal.Impl.inner size k v l r)
theorem Std.DTreeMap.Internal.Impl.«minKey?».eq_def.{u, v} : ∀ {α : Type u}, ∀ {β : α → Type v}, ∀ (x : Std.DTreeMap.Internal.Impl.{u, v} α β), Eq (Std.DTreeMap.Internal.Impl.«minKey?» x) (Std.DTreeMap.Internal.Impl.«minEntry?».match_1 (fun x ↦ Option.{u} α) x (fun _ ↦ Option.none) (fun size k v r ↦ Option.some k) fun size k v l size k v l r h r ↦ Std.DTreeMap.Internal.Impl.«minKey?» l) := fun {α β} x ↦ id (Eq.trans (WellFounded.fix_eq (Std.DTreeMap.Internal.Impl.«minKey?»._proof_1) (fun a a ↦ Std.DTreeMap.Internal.Impl.«minEntry?».match_1 (fun x ↦ ((y : Std.DTreeMap.Internal.Impl.{u, v} α β) → (invImage (fun x ↦ x) (sizeOfWFRel)).rel y x → Option.{u} α) → Option.{u} α) a (fun _ x ↦ Option.none) (fun size k v r x ↦ Option.some k) (fun size k v l size k v l r h r x ↦ x l (Std.DTreeMap.Internal.Impl.«minKey?»._proof_2 size k v l size k v l r h r)) a) x) (Eq.mpr (id (congrFun' (congrArg (Eq) (_private.Std.Data.DTreeMap.Internal.Queries.0.Std.DTreeMap.Internal.Impl.«minEntry?».match_1._arg_pusher (fun x ↦ Option.{u} α) (Std.DTreeMap.Internal.Impl.{u, v} α β) (fun x ↦ Option.{u} α) (Std.DTreeMap.Internal.Impl.«minKey?») (fun x y ↦ (invImage (fun x ↦ x) (sizeOfWFRel)).rel y x) x (fun _ x ↦ Option.none) (fun size k v r x ↦ Option.some k) fun size k v l size k v l r h r x ↦ x l (Std.DTreeMap.Internal.Impl.«minKey?»._proof_2 size k v l size k v l r h r))) (Std.DTreeMap.Internal.Impl.«minEntry?».match_1 (fun x ↦ Option.{u} α) x (fun _ ↦ Option.none) (fun size k v r ↦ Option.some k) fun size k v l size k v l r h r ↦ Std.DTreeMap.Internal.Impl.«minKey?» l))) (Eq.refl (Std.DTreeMap.Internal.Impl.«minEntry?».match_1 (fun x ↦ Option.{u} α) x (fun _ ↦ Option.none) (fun size k v r ↦ Option.some k) fun size k v l size k v l r h r ↦ Std.DTreeMap.Internal.Impl.«minKey?» l))))
has type
  (size : Nat) → (k : α) → (v : β k) → (l : Std.DTreeMap.Internal.Impl.{u, v} α β) → (r : Std.DTreeMap.Internal.Impl.{u, v} α β) → (fun x ↦ (fun x ↦ ((y : Std.DTreeMap.Internal.Impl.{u, v} α β) → (invImage (fun x ↦ x) (sizeOfWFRel)).rel y x → Option.{u} α) → Option.{u} α) (Std.DTreeMap.Internal.Impl.inner size k v x r)) l → (fun x ↦ (fun x ↦ ((y : Std.DTreeMap.Internal.Impl.{u, v} α β) → (invImage (fun x ↦ x) (sizeOfWFRel)).rel y x → Option.{u} α) → Option.{u} α) (Std.DTreeMap.Internal.Impl.inner size k v x r)) r → ((y : Std.DTreeMap.Internal.Impl.{u, v} α β) → (invImage (fun x ↦ x) (sizeOfWFRel)).rel y (Std.DTreeMap.Internal.Impl.inner size k v (namedPattern (Std.DTreeMap.Internal.Impl.inner size k v l r) (Std.DTreeMap.Internal.Impl.inner size k v l r) (Eq.refl (Std.DTreeMap.Internal.Impl.inner size k v l r))) r) → Option.{u} α) → Option.{u} α
but is expected to have type
  (size : Nat) → (k : α) → (v : β k) → (l : Std.DTreeMap.Internal.Impl.{u, v} α β) → (r : Std.DTreeMap.Internal.Impl.{u, v} α β) → (fun x ↦ (fun x ↦ ((y : Std.DTreeMap.Internal.Impl.{u, v} α β) → (invImage (fun x ↦ x) (sizeOfWFRel)).rel y x → Option.{u} α) → Option.{u} α) (Std.DTreeMap.Internal.Impl.inner size k v x r)) l → (fun x ↦ (fun x ↦ ((y : Std.DTreeMap.Internal.Impl.{u, v} α β) → (invImage (fun x ↦ x) (sizeOfWFRel)).rel y x → Option.{u} α) → Option.{u} α) (Std.DTreeMap.Internal.Impl.inner size k v x r)) r → (fun x ↦ (fun x ↦ ((y : Std.DTreeMap.Internal.Impl.{u, v} α β) → (invImage (fun x ↦ x) (sizeOfWFRel)).rel y x → Option.{u} α) → Option.{u} α) (Std.DTreeMap.Internal.Impl.inner size k v x r)) (Std.DTreeMap.Internal.Impl.inner size k v l r)
theorem Std.DTreeMap.Internal.Impl.«minEntry?».eq_def.{u, v} : ∀ {α : Type u}, ∀ {β : α → Type v}, ∀ (x : Std.DTreeMap.Internal.Impl.{u, v} α β), Eq (Std.DTreeMap.Internal.Impl.«minEntry?» x) (Std.DTreeMap.Internal.Impl.«minEntry?».match_1 (fun x ↦ Option.{(max v u)} (Sigma.{u, v} α fun a ↦ β a)) x (fun _ ↦ Option.none) (fun size k v r ↦ Option.some (Sigma.mk k v)) fun size k v l size k v l r h r ↦ Std.DTreeMap.Internal.Impl.«minEntry?» l) := fun {α β} x ↦ id (Eq.trans (WellFounded.fix_eq (Std.DTreeMap.Internal.Impl.«minEntry?»._proof_1) (fun a a ↦ Std.DTreeMap.Internal.Impl.«minEntry?».match_1 (fun x ↦ ((y : Std.DTreeMap.Internal.Impl.{u, v} α β) → (invImage (fun x ↦ x) (sizeOfWFRel)).rel y x → Option.{(max v u)} (Sigma.{u, v} α fun a ↦ β a)) → Option.{(max v u)} (Sigma.{u, v} α fun a ↦ β a)) a (fun _ x ↦ Option.none) (fun size k v r x ↦ Option.some (Sigma.mk k v)) (fun size k v l size k v l r h r x ↦ x l (Std.DTreeMap.Internal.Impl.«minEntry?»._proof_2 size k v l size k v l r h r)) a) x) (Eq.mpr (id (congrFun' (congrArg (Eq) (_private.Std.Data.DTreeMap.Internal.Queries.0.Std.DTreeMap.Internal.Impl.«minEntry?».match_1._arg_pusher (fun x ↦ Option.{(max v u)} (Sigma.{u, v} α fun a ↦ β a)) (Std.DTreeMap.Internal.Impl.{u, v} α β) (fun x ↦ Option.{(max v u)} (Sigma.{u, v} α fun a ↦ β a)) (Std.DTreeMap.Internal.Impl.«minEntry?») (fun x y ↦ (invImage (fun x ↦ x) (sizeOfWFRel)).rel y x) x (fun _ x ↦ Option.none) (fun size k v r x ↦ Option.some (Sigma.mk k v)) fun size k v l size k v l r h r x ↦ x l (Std.DTreeMap.Internal.Impl.«minEntry?»._proof_2 size k v l size k v l r h r))) (Std.DTreeMap.Internal.Impl.«minEntry?».match_1 (fun x ↦ Option.{(max v u)} (Sigma.{u, v} α fun a ↦ β a)) x (fun _ ↦ Option.none) (fun size k v r ↦ Option.some (Sigma.mk k v)) fun size k v l size k v l r h r ↦ Std.DTreeMap.Internal.Impl.«minEntry?» l))) (Eq.refl (Std.DTreeMap.Internal.Impl.«minEntry?».match_1 (fun x ↦ Option.{(max v u)} (Sigma.{u, v} α fun a ↦ β a)) x (fun _ ↦ Option.none) (fun size k v r ↦ Option.some (Sigma.mk k v)) fun size k v l size k v l r h r ↦ Std.DTreeMap.Internal.Impl.«minEntry?» l))))
has type
  (size : Nat) → (k : α) → (v : β k) → (l : Std.DTreeMap.Internal.Impl.{u, v} α β) → (r : Std.DTreeMap.Internal.Impl.{u, v} α β) → (fun x ↦ (fun x ↦ ((y : Std.DTreeMap.Internal.Impl.{u, v} α β) → (invImage (fun x ↦ x) (sizeOfWFRel)).rel y x → Option.{(max v u)} (Sigma.{u, v} α fun a ↦ β a)) → Option.{(max v u)} (Sigma.{u, v} α fun a ↦ β a)) (Std.DTreeMap.Internal.Impl.inner size k v x r)) l → (fun x ↦ (fun x ↦ ((y : Std.DTreeMap.Internal.Impl.{u, v} α β) → (invImage (fun x ↦ x) (sizeOfWFRel)).rel y x → Option.{(max v u)} (Sigma.{u, v} α fun a ↦ β a)) → Option.{(max v u)} (Sigma.{u, v} α fun a ↦ β a)) (Std.DTreeMap.Internal.Impl.inner size k v x r)) r → ((y : Std.DTreeMap.Internal.Impl.{u, v} α β) → (invImage (fun x ↦ x) (sizeOfWFRel)).rel y (Std.DTreeMap.Internal.Impl.inner size k v (namedPattern (Std.DTreeMap.Internal.Impl.inner size k v l r) (Std.DTreeMap.Internal.Impl.inner size k v l r) (Eq.refl (Std.DTreeMap.Internal.Impl.inner size k v l r))) r) → Option.{(max v u)} (Sigma.{u, v} α fun a ↦ β a)) → Option.{(max v u)} (Sigma.{u, v} α fun a ↦ β a)
but is expected to have type
  (size : Nat) → (k : α) → (v : β k) → (l : Std.DTreeMap.Internal.Impl.{u, v} α β) → (r : Std.DTreeMap.Internal.Impl.{u, v} α β) → (fun x ↦ (fun x ↦ ((y : Std.DTreeMap.Internal.Impl.{u, v} α β) → (invImage (fun x ↦ x) (sizeOfWFRel)).rel y x → Option.{(max v u)} (Sigma.{u, v} α fun a ↦ β a)) → Option.{(max v u)} (Sigma.{u, v} α fun a ↦ β a)) (Std.DTreeMap.Internal.Impl.inner size k v x r)) l → (fun x ↦ (fun x ↦ ((y : Std.DTreeMap.Internal.Impl.{u, v} α β) → (invImage (fun x ↦ x) (sizeOfWFRel)).rel y x → Option.{(max v u)} (Sigma.{u, v} α fun a ↦ β a)) → Option.{(max v u)} (Sigma.{u, v} α fun a ↦ β a)) (Std.DTreeMap.Internal.Impl.inner size k v x r)) r → (fun x ↦ (fun x ↦ ((y : Std.DTreeMap.Internal.Impl.{u, v} α β) → (invImage (fun x ↦ x) (sizeOfWFRel)).rel y x → Option.{(max v u)} (Sigma.{u, v} α fun a ↦ β a)) → Option.{(max v u)} (Sigma.{u, v} α fun a ↦ β a)) (Std.DTreeMap.Internal.Impl.inner size k v x r)) (Std.DTreeMap.Internal.Impl.inner size k v l r)
theorem Std.DTreeMap.Internal.Impl.minKey._unary.eq_def.{u, v} : ∀ {α : Type u}, ∀ {β : α → Type v}, ∀ (_x : PSigma fun t ↦ Eq (Std.DTreeMap.Internal.Impl.isEmpty t) Bool.false), Eq (Std.DTreeMap.Internal.Impl.minKey._unary _x) (PSigma.casesOn _x fun t h ↦ Std.DTreeMap.Internal.Impl.minEntry.match_1 (fun x x ↦ α) t h (fun size k v r x ↦ k) fun size k v l size k v l r h r h ↦ Std.DTreeMap.Internal.Impl.minKey._unary (PSigma.mk l (Std.DTreeMap.Internal.Impl.minEntry._proof_5 l size k v l r h))) := fun {α β} _x ↦ id (Eq.trans (WellFounded.fix_eq (Std.DTreeMap.Internal.Impl.minKey._unary._proof_1) (fun _x a ↦ PSigma.casesOn _x (fun t h a ↦ Std.DTreeMap.Internal.Impl.minEntry.match_1 (fun x x ↦ ((y : PSigma fun t ↦ Eq (Std.DTreeMap.Internal.Impl.isEmpty t) Bool.false) → (invImage (fun x ↦ PSigma.casesOn x fun t h ↦ t) (sizeOfWFRel)).rel y (PSigma.mk x x) → α) → α) t h (fun size k v r x x ↦ k) (fun size k v l size k v l r h r h x ↦ x (PSigma.mk l (Std.DTreeMap.Internal.Impl.minEntry._proof_5 l size k v l r h)) (Std.DTreeMap.Internal.Impl.minKey._unary._proof_2 size k v l size k v l r h r h)) a) a) _x) (Eq.mpr (id (congrFun' (congrArg (Eq) (Eq.trans (_private.Std.Data.DTreeMap.Internal.Queries.0.PSigma.casesOn._arg_pusher (PSigma fun t ↦ Eq (Std.DTreeMap.Internal.Impl.isEmpty t) Bool.false) (fun _x ↦ α) (Std.DTreeMap.Internal.Impl.minKey._unary) (fun _x y ↦ (invImage (fun x ↦ PSigma.casesOn x fun t h ↦ t) (sizeOfWFRel)).rel y _x) _x fun t h a ↦ Std.DTreeMap.Internal.Impl.minEntry.match_1 (fun x x ↦ ((y : PSigma fun t ↦ Eq (Std.DTreeMap.Internal.Impl.isEmpty t) Bool.false) → (invImage (fun x ↦ PSigma.casesOn x fun t h ↦ t) (sizeOfWFRel)).rel y (PSigma.mk x x) → α) → α) t h (fun size k v r x x ↦ k) (fun size k v l size k v l r h r h x ↦ x (PSigma.mk l (Std.DTreeMap.Internal.Impl.minEntry._proof_5 l size k v l r h)) (Std.DTreeMap.Internal.Impl.minKey._unary._proof_2 size k v l size k v l r h r h)) a) (congrFun' (congrArg (PSigma.rec) (funext fun fst ↦ funext fun snd ↦ _private.Std.Data.DTreeMap.Internal.Queries.0.Std.DTreeMap.Internal.Impl.minEntry.match_1._arg_pusher (fun x x ↦ α) (PSigma fun t ↦ Eq (Std.DTreeMap.Internal.Impl.isEmpty t) Bool.false) (fun _x ↦ α) (Std.DTreeMap.Internal.Impl.minKey._unary) (fun x x y ↦ (invImage (fun x ↦ PSigma.casesOn x fun t h ↦ t) (sizeOfWFRel)).rel y (PSigma.mk x x)) fst snd (fun size k v r x x ↦ k) fun size k v l size k v l r h r h x ↦ x (PSigma.mk l (Std.DTreeMap.Internal.Impl.minEntry._proof_5 l size k v l r h)) (Std.DTreeMap.Internal.Impl.minKey._unary._proof_2 size k v l size k v l r h r h))) _x))) (PSigma.rec (fun t h ↦ Std.DTreeMap.Internal.Impl.minEntry.match_1 (fun x x ↦ α) t h (fun size k v r x ↦ k) fun size k v l size k v l r h r h ↦ Std.DTreeMap.Internal.Impl.minKey._unary (PSigma.mk l (Std.DTreeMap.Internal.Impl.minEntry._proof_5 l size k v l r h))) _x))) (Eq.refl (PSigma.rec (fun t h ↦ Std.DTreeMap.Internal.Impl.minEntry.match_1 (fun x x ↦ α) t h (fun size k v r x ↦ k) fun size k v l size k v l r h r h ↦ Std.DTreeMap.Internal.Impl.minKey._unary (PSigma.mk l (Std.DTreeMap.Internal.Impl.minEntry._proof_5 l size k v l r h))) _x))))
has type
  (size : Nat) → (k : α) → (v : β k) → (l : Std.DTreeMap.Internal.Impl.{u, v} α β) → (r : Std.DTreeMap.Internal.Impl.{u, v} α β) → (fun x ↦ (x : Eq (Std.DTreeMap.Internal.Impl.isEmpty (Std.DTreeMap.Internal.Impl.inner size k v x r)) Bool.false) → (fun x x ↦ ((y : PSigma fun t ↦ Eq (Std.DTreeMap.Internal.Impl.isEmpty t) Bool.false) → (invImage (fun x ↦ PSigma.casesOn x fun t h ↦ t) (sizeOfWFRel)).rel y (PSigma.mk x x) → α) → α) (Std.DTreeMap.Internal.Impl.inner size k v x r) x) l → (fun x ↦ (x : Eq (Std.DTreeMap.Internal.Impl.isEmpty (Std.DTreeMap.Internal.Impl.inner size k v x r)) Bool.false) → (fun x x ↦ ((y : PSigma fun t ↦ Eq (Std.DTreeMap.Internal.Impl.isEmpty t) Bool.false) → (invImage (fun x ↦ PSigma.casesOn x fun t h ↦ t) (sizeOfWFRel)).rel y (PSigma.mk x x) → α) → α) (Std.DTreeMap.Internal.Impl.inner size k v x r) x) r → (x : Eq (Std.DTreeMap.Internal.Impl.isEmpty (Std.DTreeMap.Internal.Impl.inner size k v (Std.DTreeMap.Internal.Impl.inner size k v l r) r)) Bool.false) → ((y : PSigma fun t ↦ Eq (Std.DTreeMap.Internal.Impl.isEmpty t) Bool.false) → (invImage (fun x ↦ PSigma.casesOn x fun t h ↦ t) (sizeOfWFRel)).rel y (PSigma.mk (Std.DTreeMap.Internal.Impl.inner size k v (namedPattern (Std.DTreeMap.Internal.Impl.inner size k v l r) (Std.DTreeMap.Internal.Impl.inner size k v l r) (Eq.refl (Std.DTreeMap.Internal.Impl.inner size k v l r))) r) x) → α) → α
but is expected to have type
  (size : Nat) → (k : α) → (v : β k) → (l : Std.DTreeMap.Internal.Impl.{u, v} α β) → (r : Std.DTreeMap.Internal.Impl.{u, v} α β) → (fun x ↦ (x : Eq (Std.DTreeMap.Internal.Impl.isEmpty (Std.DTreeMap.Internal.Impl.inner size k v x r)) Bool.false) → (fun x x ↦ ((y : PSigma fun t ↦ Eq (Std.DTreeMap.Internal.Impl.isEmpty t) Bool.false) → (invImage (fun x ↦ PSigma.casesOn x fun t h ↦ t) (sizeOfWFRel)).rel y (PSigma.mk x x) → α) → α) (Std.DTreeMap.Internal.Impl.inner size k v x r) x) l → (fun x ↦ (x : Eq (Std.DTreeMap.Internal.Impl.isEmpty (Std.DTreeMap.Internal.Impl.inner size k v x r)) Bool.false) → (fun x x ↦ ((y : PSigma fun t ↦ Eq (Std.DTreeMap.Internal.Impl.isEmpty t) Bool.false) → (invImage (fun x ↦ PSigma.casesOn x fun t h ↦ t) (sizeOfWFRel)).rel y (PSigma.mk x x) → α) → α) (Std.DTreeMap.Internal.Impl.inner size k v x r) x) r → (fun x ↦ (x : Eq (Std.DTreeMap.Internal.Impl.isEmpty (Std.DTreeMap.Internal.Impl.inner size k v x r)) Bool.false) → (fun x x ↦ ((y : PSigma fun t ↦ Eq (Std.DTreeMap.Internal.Impl.isEmpty t) Bool.false) → (invImage (fun x ↦ PSigma.casesOn x fun t h ↦ t) (sizeOfWFRel)).rel y (PSigma.mk x x) → α) → α) (Std.DTreeMap.Internal.Impl.inner size k v x r) x) (Std.DTreeMap.Internal.Impl.inner size k v l r)
theorem Std.DTreeMap.Internal.Impl.minKeyD._unary.eq_def.{u, v} : ∀ {α : Type u}, ∀ {β : α → Type v}, ∀ (_x : PSigma fun a ↦ α), Eq (Std.DTreeMap.Internal.Impl.minKeyD._unary _x) (PSigma.casesOn _x fun a a ↦ Std.DTreeMap.Internal.Impl.minKeyD.match_1 (fun x x ↦ α) a a (fun h ↦ h) (fun size k v r x ↦ k) fun size k v l size k v l r h r fallback ↦ Std.DTreeMap.Internal.Impl.minKeyD._unary (PSigma.mk l fallback)) := fun {α β} _x ↦ id (Eq.trans (WellFounded.fix_eq (Std.DTreeMap.Internal.Impl.minKeyD._unary._proof_1) (fun _x a ↦ PSigma.casesOn _x (fun a a a ↦ Std.DTreeMap.Internal.Impl.minKeyD.match_1 (fun x x ↦ ((y : PSigma fun x ↦ α) → (invImage (fun x ↦ PSigma.casesOn x fun a a ↦ a) (sizeOfWFRel)).rel y (PSigma.mk x x) → α) → α) a a (fun fallback x ↦ fallback) (fun size k v r x x ↦ k) (fun size k v l size k v l r h r fallback x ↦ x (PSigma.mk l fallback) (Std.DTreeMap.Internal.Impl.minKeyD._unary._proof_2 size k v l size k v l r h r fallback)) a) a) _x) (Eq.mpr (id (congrFun' (congrArg (Eq) (Eq.trans (_private.Std.Data.DTreeMap.Internal.Queries.0.PSigma.casesOn._arg_pusher (PSigma fun a ↦ α) (fun _x ↦ α) (Std.DTreeMap.Internal.Impl.minKeyD._unary) (fun _x y ↦ (invImage (fun x ↦ PSigma.casesOn x fun a x ↦ a) (sizeOfWFRel)).rel y _x) _x fun a a a ↦ Std.DTreeMap.Internal.Impl.minKeyD.match_1 (fun x x ↦ ((y : PSigma fun x1 ↦ α) → (invImage (fun x ↦ PSigma.casesOn x fun a a ↦ a) (sizeOfWFRel)).rel y (PSigma.mk x x) → α) → α) a a (fun fallback x ↦ fallback) (fun size k v r x x ↦ k) (fun size k v l size k v l r h r fallback x ↦ x (PSigma.mk l fallback) (Std.DTreeMap.Internal.Impl.minKeyD._unary._proof_2 size k v l size k v l r h r fallback)) a) (congrFun' (congrArg (PSigma.rec) (funext fun fst ↦ funext fun snd ↦ _private.Std.Data.DTreeMap.Internal.Queries.0.Std.DTreeMap.Internal.Impl.minKeyD.match_1._arg_pusher (fun x x ↦ α) (PSigma fun x1 ↦ α) (fun _x ↦ α) (Std.DTreeMap.Internal.Impl.minKeyD._unary) (fun x x y ↦ (invImage (fun x ↦ PSigma.casesOn x fun a x ↦ a) (sizeOfWFRel)).rel y (PSigma.mk x x)) fst snd (fun fallback x ↦ fallback) (fun size k v r x x ↦ k) fun size k v l size k v l r h r fallback x ↦ x (PSigma.mk l fallback) (Std.DTreeMap.Internal.Impl.minKeyD._unary._proof_2 size k v l size k v l r h r fallback))) _x))) (PSigma.rec (fun a a ↦ Std.DTreeMap.Internal.Impl.minKeyD.match_1 (fun x x ↦ α) a a (fun h ↦ h) (fun size k v r x ↦ k) fun size k v l size k v l r h r fallback ↦ Std.DTreeMap.Internal.Impl.minKeyD._unary (PSigma.mk l fallback)) _x))) (Eq.refl (PSigma.rec (fun a a ↦ Std.DTreeMap.Internal.Impl.minKeyD.match_1 (fun x x ↦ α) a a (fun h ↦ h) (fun size k v r x ↦ k) fun size k v l size k v l r h r fallback ↦ Std.DTreeMap.Internal.Impl.minKeyD._unary (PSigma.mk l fallback)) _x))))
has type
  (size : Nat) → (k : α) → (v : β k) → (l : Std.DTreeMap.Internal.Impl.{u, v} α β) → (r : Std.DTreeMap.Internal.Impl.{u, v} α β) → (fun x ↦ (fun x x ↦ ((y : PSigma fun x1 ↦ α) → (invImage (fun x ↦ PSigma.casesOn x fun a a ↦ a) (sizeOfWFRel)).rel y (PSigma.mk x x) → α) → α) (Std.DTreeMap.Internal.Impl.inner size k v x r) _x.snd) l → (fun x ↦ (fun x x ↦ ((y : PSigma fun x1 ↦ α) → (invImage (fun x ↦ PSigma.casesOn x fun a a ↦ a) (sizeOfWFRel)).rel y (PSigma.mk x x) → α) → α) (Std.DTreeMap.Internal.Impl.inner size k v x r) _x.snd) r → ((y : PSigma fun a ↦ α) → (invImage (fun x ↦ PSigma.casesOn x fun a x ↦ a) (sizeOfWFRel)).rel y (PSigma.mk (Std.DTreeMap.Internal.Impl.inner size k v (namedPattern (Std.DTreeMap.Internal.Impl.inner size k v l r) (Std.DTreeMap.Internal.Impl.inner size k v l r) (Eq.refl (Std.DTreeMap.Internal.Impl.inner size k v l r))) r) _x.snd) → α) → α
but is expected to have type
  (size : Nat) → (k : α) → (v : β k) → (l : Std.DTreeMap.Internal.Impl.{u, v} α β) → (r : Std.DTreeMap.Internal.Impl.{u, v} α β) → (fun x ↦ (fun x x ↦ ((y : PSigma fun x1 ↦ α) → (invImage (fun x ↦ PSigma.casesOn x fun a a ↦ a) (sizeOfWFRel)).rel y (PSigma.mk x x) → α) → α) (Std.DTreeMap.Internal.Impl.inner size k v x r) _x.snd) l → (fun x ↦ (fun x x ↦ ((y : PSigma fun x1 ↦ α) → (invImage (fun x ↦ PSigma.casesOn x fun a a ↦ a) (sizeOfWFRel)).rel y (PSigma.mk x x) → α) → α) (Std.DTreeMap.Internal.Impl.inner size k v x r) _x.snd) r → (fun x ↦ (fun x x ↦ ((y : PSigma fun x1 ↦ α) → (invImage (fun x ↦ PSigma.casesOn x fun a a ↦ a) (sizeOfWFRel)).rel y (PSigma.mk x x) → α) → α) (Std.DTreeMap.Internal.Impl.inner size k v x r) _x.snd) (Std.DTreeMap.Internal.Impl.inner size k v l r)

Test "tutorial/001_basicDef"

Expected: 👍 accept · Size: 371 B · Lines: 6 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source

Basic definition

Test result: 👍 accepted · exit code 0 · wall time: 22 ms · instructions: 20.1 M · max rss memory: 7.0 MB

stderr:
checked in 0.001516s

Test "tutorial/002_badDef"

Expected: ✋ reject · Size: 369 B · Lines: 6 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source

Mismatched types

Test result: ✋ rejected · exit code 1 · wall time: 6 ms · instructions: 11.6 M · max rss memory: 7.1 MB

stderr:
def badDef : Prop :=
  Type
  ^^^^
  has type
    Type 1
  but is expected to have type
    Prop
checked in 0.000380s

Test "tutorial/003_arrowType"

Expected: 👍 accept · Size: 626 B · Lines: 12 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source

Arrow type (function type)

Test result: 👍 accepted · exit code 0 · wall time: 6 ms · instructions: 11.4 M · max rss memory: 7.1 MB

stderr:
checked in 0.000314s

Test "tutorial/004_dependentType"

Expected: 👍 accept · Size: 464 B · Lines: 7 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source

Dependent type (forall)

Test result: 👍 accepted · exit code 0 · wall time: 6 ms · instructions: 11.4 M · max rss memory: 7.1 MB

stderr:
checked in 0.000350s

Test "tutorial/005_constType"

Expected: 👍 accept · Size: 901 B · Lines: 17 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source

Lambda expression

Test result: 👍 accepted · exit code 0 · wall time: 6 ms · instructions: 11.6 M · max rss memory: 7.2 MB

stderr:
checked in 0.000269s

Test "tutorial/006_betaReduction"

Expected: 👍 accept · Size: 1.3 KB · Lines: 27 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source

Lambda reduction

Test result: 👍 accepted · exit code 0 · wall time: 6 ms · instructions: 11.6 M · max rss memory: 7.2 MB

stderr:
checked in 0.000413s

Test "tutorial/007_betaReduction2"

Expected: 👍 accept · Size: 1.4 KB · Lines: 28 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source

Lambda reduction under binder

Test result: 👍 accepted · exit code 0 · wall time: 6 ms · instructions: 11.6 M · max rss memory: 7.2 MB

stderr:
checked in 0.000419s

Test "tutorial/008_forallSortWhnf"

Expected: 👍 accept · Size: 1.2 KB · Lines: 25 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source

The binding domain of a forall may need to be reduce before it is a sort

Test result: 👍 accepted · exit code 0 · wall time: 6 ms · instructions: 11.6 M · max rss memory: 7.2 MB

stderr:
checked in 0.000419s

Test "tutorial/009_forallSortBad"

Expected: ✋ reject · Size: 1.2 KB · Lines: 26 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source

The binding domain of a forall has to be a sort

Test result: ✋ rejected · exit code 1 · wall time: 6 ms · instructions: 11.7 M · max rss memory: 7.2 MB

stderr:
def forallSortBad : Prop :=
  ∀ (x : id Prop), ∀ (x : x), x → x
                          ^
                          has type
                            x
                          but is expected to be a Sort (Type or Prop)
checked in 0.000453s

Test "tutorial/010_nonTypeType"

Expected: ✋ reject · Size: 1.1 KB · Lines: 21 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source

The type of a declaration has to be a type, not some other expression

Test result: ✋ rejected · exit code 1 · wall time: 6 ms · instructions: 11.6 M · max rss memory: 7.2 MB

stderr:
def nonTypeType : constType :=
                  ^^^^^^^^^
                  has type
                    Type → Type → Type
                  but is expected to be a Sort (Type or Prop)
checked in 0.000387s

Test "tutorial/011_nonPropThm"

Expected: ✋ reject · Size: 428 B · Lines: 7 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source

The type of a theorem has to be a proposition

Test result: ✋ rejected · exit code 1 · wall time: 6 ms · instructions: 11.5 M · max rss memory: 7.1 MB

stderr:
theorem nonPropThm : Prop := ∀ (x : Prop), x
                     ^^^^
                     has sort
                       Type
                     but the type of a theorem must be a proposition (Prop)
checked in 0.000375s

Test "tutorial/012_levelComp1"

Expected: 👍 accept · Size: 395 B · Lines: 7 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source

Some level computation

Test result: 👍 accepted · exit code 0 · wall time: 6 ms · instructions: 11.4 M · max rss memory: 7.0 MB

stderr:
checked in 0.000295s

Test "tutorial/013_levelComp2"

Expected: 👍 accept · Size: 413 B · Lines: 8 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source

Some level computation

Test result: 👍 accepted · exit code 0 · wall time: 6 ms · instructions: 11.4 M · max rss memory: 7.0 MB

stderr:
checked in 0.000309s

Test "tutorial/014_levelComp3"

Expected: 👍 accept · Size: 431 B · Lines: 9 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source

Some level computation

Test result: 👍 accepted · exit code 0 · wall time: 6 ms · instructions: 11.4 M · max rss memory: 7.1 MB

stderr:
checked in 0.000320s

Test "tutorial/015_levelParams"

Expected: 👍 accept · Size: 1.4 KB · Lines: 29 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source

Level parameters

Test result: 👍 accepted · exit code 0 · wall time: 6 ms · instructions: 11.6 M · max rss memory: 7.2 MB

stderr:
checked in 0.000398s

Test "tutorial/016_tut06_bad01"

Expected: ✋ reject · Size: 431 B · Lines: 8 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source

Duplicate universe parameters

Test result: ✋ rejected · exit code 1 · wall time: 7 ms · instructions: 11.5 M · max rss memory: 6.9 MB

stderr:
Invalid declaration tut06_bad01.{u, u}: duplicate level parameter u

checked in 0.000373s

Test "tutorial/017_levelComp4"

Expected: 👍 accept · Size: 428 B · Lines: 8 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source

Some level computation

Test result: 👍 accepted · exit code 0 · wall time: 6 ms · instructions: 11.4 M · max rss memory: 7.0 MB

stderr:
checked in 0.000323s

Test "tutorial/018_levelComp5"

Expected: 👍 accept · Size: 428 B · Lines: 8 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source

Some level computation

Test result: 👍 accepted · exit code 0 · wall time: 6 ms · instructions: 11.4 M · max rss memory: 7.0 MB

stderr:
checked in 0.000320s

Test "tutorial/019_imax1"

Expected: 👍 accept · Size: 813 B · Lines: 16 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source

Type inference for forall using imax

Test result: 👍 accepted · exit code 0 · wall time: 6 ms · instructions: 11.5 M · max rss memory: 7.1 MB

stderr:
checked in 0.000369s

Test "tutorial/020_imax2"

Expected: 👍 accept · Size: 832 B · Lines: 17 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source

Type inference for forall using imax

Test result: 👍 accepted · exit code 0 · wall time: 6 ms · instructions: 11.5 M · max rss memory: 7.2 MB

stderr:
checked in 0.000363s

Test "tutorial/021_inferVar"

Expected: 👍 accept · Size: 717 B · Lines: 12 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source

Type inference of local variables

Test result: 👍 accepted · exit code 0 · wall time: 6 ms · instructions: 11.5 M · max rss memory: 7.1 MB

stderr:
checked in 0.000292s

Test "tutorial/022_defEqLambda"

Expected: 👍 accept · Size: 1.4 KB · Lines: 26 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source

Definitional equality between lambdas

Test result: 👍 accepted · exit code 0 · wall time: 6 ms · instructions: 11.6 M · max rss memory: 7.2 MB

stderr:
checked in 0.000362s

Test "tutorial/023_peano1"

Expected: 👍 accept · Size: 3.6 KB · Lines: 73 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source

Peano arithmetic: 2 = 2

Test result: 👍 accepted · exit code 0 · wall time: 6 ms · instructions: 11.9 M · max rss memory: 7.2 MB

stderr:
checked in 0.000454s

Test "tutorial/024_peano2"

Expected: 👍 accept · Size: 4.5 KB · Lines: 90 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source

Peano arithmetic: 1 + 1 = 2

Test result: 👍 accepted · exit code 0 · wall time: 6 ms · instructions: 12.2 M · max rss memory: 7.4 MB

stderr:
checked in 0.000535s

Test "tutorial/025_peano3"

Expected: 👍 accept · Size: 4.9 KB · Lines: 98 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source

Peano arithmetic: 2 * 2 = 4

Test result: 👍 accepted · exit code 0 · wall time: 6 ms · instructions: 12.4 M · max rss memory: 7.4 MB

stderr:
checked in 0.000571s

Test "tutorial/026_letType"

Expected: 👍 accept · Size: 493 B · Lines: 9 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source

Type checking a non-dependent let

Test result: 👍 accepted · exit code 0 · wall time: 6 ms · instructions: 11.5 M · max rss memory: 7.1 MB

stderr:
checked in 0.000305s

Test "tutorial/027_letTypeDep"

Expected: 👍 accept · Size: 1.2 KB · Lines: 26 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source

Type checking a dependent let

Test result: 👍 accepted · exit code 0 · wall time: 6 ms · instructions: 11.5 M · max rss memory: 7.2 MB

stderr:
checked in 0.000355s

Test "tutorial/028_letRed"

Expected: 👍 accept · Size: 631 B · Lines: 12 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source

Reducing a let

Test result: 👍 accepted · exit code 0 · wall time: 6 ms · instructions: 11.5 M · max rss memory: 7.1 MB

stderr:
checked in 0.000325s

Test "tutorial/029_empty"

Expected: 👍 accept · Size: 1.2 KB · Lines: 20 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source

A simple empty inductive type

Test result: 👍 accepted · exit code 0 · wall time: 6 ms · instructions: 11.6 M · max rss memory: 7.1 MB

stderr:
checked in 0.000369s

Test "tutorial/030_boolType"

Expected: 👍 accept · Size: 2.3 KB · Lines: 37 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source

A simple enumeration inductive type

Test result: 👍 accepted · exit code 0 · wall time: 17 ms · instructions: 11.6 M · max rss memory: 7.2 MB

stderr:
checked in 0.000375s

Test "tutorial/031_twoBool"

Expected: 👍 accept · Size: 4.2 KB · Lines: 65 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source

A simple product type

Test result: 👍 accepted · exit code 0 · wall time: 6 ms · instructions: 11.7 M · max rss memory: 7.2 MB

stderr:
checked in 0.000408s

Test "tutorial/032_andType"

Expected: 👍 accept · Size: 3.2 KB · Lines: 57 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source

A parametrized product type (no level parameters)

Test result: 👍 accepted · exit code 0 · wall time: 6 ms · instructions: 11.6 M · max rss memory: 7.2 MB

stderr:
checked in 0.000372s

Test "tutorial/033_prodType"

Expected: 👍 accept · Size: 3.8 KB · Lines: 76 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source

A parametrized product type (with level parameters)

Test result: 👍 accepted · exit code 0 · wall time: 6 ms · instructions: 11.7 M · max rss memory: 7.2 MB

stderr:
checked in 0.000412s

Test "tutorial/034_pprodType"

Expected: 👍 accept · Size: 3.8 KB · Lines: 75 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source

A parametrized product type (with more general level parameters)

Test result: 👍 accepted · exit code 0 · wall time: 6 ms · instructions: 11.8 M · max rss memory: 7.2 MB

stderr:
checked in 0.000382s

Test "tutorial/035_pUnitType"

Expected: 👍 accept · Size: 1.8 KB · Lines: 31 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source

Level-polymorphic unit type

Test result: 👍 accepted · exit code 0 · wall time: 6 ms · instructions: 11.5 M · max rss memory: 7.2 MB

stderr:
checked in 0.000347s

Test "tutorial/036_eqType"

Expected: 👍 accept · Size: 3.2 KB · Lines: 62 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source

Equality, as an important indexed non-recursive data type

Test result: 👍 accepted · exit code 0 · wall time: 7 ms · instructions: 11.7 M · max rss memory: 7.2 MB

stderr:
checked in 0.000458s

Test "tutorial/037_natDef"

Expected: 👍 accept · Size: 3.3 KB · Lines: 61 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source

A recursive inductive data type

Test result: 👍 accepted · exit code 0 · wall time: 6 ms · instructions: 11.7 M · max rss memory: 7.2 MB

stderr:
checked in 0.000401s

Test "tutorial/038_rbTreeDef"

Expected: 👍 accept · Size: 15.7 KB · Lines: 296 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source

A recursive indexed data type

Test result: 👍 accepted · exit code 0 · wall time: 6 ms · instructions: 12.5 M · max rss memory: 7.4 MB

stderr:
checked in 0.000580s

Test "tutorial/039_inductBadNonSort"

Expected: ✋ reject · Size: 1.2 KB · Lines: 20 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source

An inductive type with a non-sort type

Test result: ✋ rejected · exit code 1 · wall time: 6 ms · instructions: 11.6 M · max rss memory: 7.2 MB

stderr:
inductive inductBadNonSort : constType
                             ^^^^^^^^^
                             has type
                               Type → Type → Type
                             but is expected to be a Sort (Type or Prop)
checked in 0.000427s

Test "tutorial/040_inductBadNonSort2"

Expected: ✋ reject · Size: 602 B · Lines: 8 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source

Another inductive type with a non-sort type

Test result: ✋ rejected · exit code 1 · wall time: 6 ms · instructions: 11.5 M · max rss memory: 7.1 MB

stderr:
inductive inductBadNonSort2 : aType
                              ^^^^^
                              has type
                                Type
                              but is expected to be a Sort (Type or Prop)
checked in 0.000339s

Test "tutorial/041_inductLevelParam"

Expected: ✋ reject · Size: 519 B · Lines: 7 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source

An inductive with duplicate level params

Test result: ✋ rejected · exit code 1 · wall time: 6 ms · instructions: 11.4 M · max rss memory: 6.9 MB

stderr:
Invalid declaration inductLevelParam.{u, u}: duplicate level parameter u

checked in 0.000298s

Test "tutorial/042_inductTooFewParams"

Expected: ✋ reject · Size: 552 B · Lines: 6 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source

An inductive with too few parameters in the type

Test result: ✋ rejected · exit code 1 · wall time: 6 ms · instructions: 11.4 M · max rss memory: 7.0 MB

stderr:
inductive inductTooFewParams : Prop → Prop
                               ^^^^^^^^^^^
                               has type
                                 Prop
                               but is expected to be a Sort (Type or Prop)
checked in 0.000294s

Test "tutorial/043_inductWrongCtorParams"

Expected: ✋ reject · Size: 1.2 KB · Lines: 16 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source

An inductive with a constructor with wrong parameters

Test result: ✋ rejected · exit code 1 · wall time: 6 ms · instructions: 11.6 M · max rss memory: 7.1 MB

stderr:
inductive inductWrongCtorParams : Prop → Type
| mk : Type → inductWrongCtorParams aProp
       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
       invalid return type
checked in 0.000432s

Test "tutorial/044_inductWrongCtorResParams"

Expected: ✋ reject · Size: 1.3 KB · Lines: 19 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source

An inductive with a constructor with wrong parameters in result (they are swapped)

Test result: ✋ rejected · exit code 1 · wall time: 6 ms · instructions: 11.7 M · max rss memory: 7.2 MB

stderr:
inductive inductWrongCtorResParams : Prop → Prop → Type
| mk : (x : Prop) → (y : Prop) → inductWrongCtorResParams y x
       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
       invalid return type
checked in 0.000397s

Test "tutorial/045_inductWrongCtorResLevel"

Expected: ✋ reject · Size: 1.4 KB · Lines: 23 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source

An inductive with a constructor with wrong level parameters in result (they are swapped)

Test result: ✋ rejected · exit code 1 · wall time: 6 ms · instructions: 11.6 M · max rss memory: 7.2 MB

stderr:
inductive inductWrongCtorResLevel.{u1, u2} : Prop → Prop → Type
| mk : (x : Prop) → (y : Prop) → inductWrongCtorResLevel.{u2, u1} x y
       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
       invalid return type
checked in 0.000392s

Test "tutorial/046_inductInIndex"

Expected: ✋ reject · Size: 1.1 KB · Lines: 14 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source

A constructor with an unexpected occurrence of the type in index position of a return type.

Test result: ✋ rejected · exit code 1 · wall time: 6 ms · instructions: 11.5 M · max rss memory: 7.1 MB

stderr:
inductive inductInIndex : Prop → Prop
| mk : inductInIndex (inductInIndex aProp)
       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
       invalid return type
checked in 0.000354s

Test "tutorial/047_indNeg"

Expected: ✋ reject · Size: 1000 B · Lines: 12 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source

The classic example of an inductive with negative recursive occurrence

Test result: ✋ rejected · exit code 1 · wall time: 6 ms · instructions: 11.6 M · max rss memory: 7.2 MB

stderr:
inductive indNeg : Type
| mk : (indNeg → indNeg) → indNeg
        ^^^^^^^^^^^^^^^
        arg #1 has a non-positive occurrence of the datatype being declared
checked in 0.000333s

Test "tutorial/048_reduceCtorParam.mk"

Expected: 👍 accept · Size: 4.1 KB · Lines: 80 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source

When checking inductives, we expect the kernel to reduce the types of constructor arguments.

Test result: 👍 accepted · exit code 0 · wall time: 6 ms · instructions: 11.8 M · max rss memory: 7.2 MB

stderr:
checked in 0.000483s

Test "tutorial/049_reduceCtorType.mk"

Expected: ✋ reject · Size: 1.5 KB · Lines: 26 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source

When checking inductives, we expect the kernel to not reduce the type of the constructor itself; that should be all manifest foralls

Test result: ✋ rejected · exit code 1 · wall time: 6 ms · instructions: 11.6 M · max rss memory: 7.2 MB

stderr:
inductive reduceCtorType : Type
| mk : id reduceCtorType
       ^^^^^^^^^^^^^^^^^
       invalid return type
checked in 0.000420s

Test "tutorial/050_indNegReducible"

Expected: ✋ reject · Size: 1.9 KB · Lines: 31 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source

When checking inductives, we expect the kernel to not reduce the type of the constructor parameters further than head normal form. Recursive occurrences nested inside the head normal form are considered negative occurrences, even if they could be reduced to disappear.

Test result: ✋ rejected · exit code 1 · wall time: 6 ms · instructions: 11.7 M · max rss memory: 7.2 MB

stderr:
inductive indNegReducible : Type
| mk : (constType aType indNegReducible → indNegReducible) → indNegReducible
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        arg #1 has a non-positive occurrence of the datatype being declared
checked in 0.000431s

Test "tutorial/051_predWithTypeField"

Expected: 👍 accept · Size: 2.0 KB · Lines: 32 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source

An inductive proposition can have constructors with fields of arbitrary level.

Test result: 👍 accepted · exit code 0 · wall time: 6 ms · instructions: 11.6 M · max rss memory: 7.2 MB

stderr:
checked in 0.000341s

Test "tutorial/052_typeWithTypeField"

Expected: 👍 accept · Size: 2.1 KB · Lines: 36 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source

An inductive type can have fields of level up to that of the inductive.

Test result: 👍 accepted · exit code 0 · wall time: 6 ms · instructions: 11.6 M · max rss memory: 7.2 MB

stderr:
checked in 0.000386s

Test "tutorial/053_typeWithTypeFieldPoly"

Expected: 👍 accept · Size: 2.1 KB · Lines: 38 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source

An inductive type can have fields of level up to that of the inductive (polymorphic variant).

Test result: 👍 accepted · exit code 0 · wall time: 6 ms · instructions: 11.6 M · max rss memory: 7.2 MB

stderr:
checked in 0.000356s

Test "tutorial/054_typeWithTooHighTypeField.mk"

Expected: ✋ reject · Size: 947 B · Lines: 11 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source

An inductive type can have fields of from higher universes.

Test result: ✋ rejected · exit code 1 · wall time: 6 ms · instructions: 11.6 M · max rss memory: 7.1 MB

stderr:
inductive typeWithTooHighTypeField : Type
| mk : Type → typeWithTooHighTypeField
       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
       has field of type
         Type
       at universe level 2, but the inductive is at universe level 1
checked in 0.000352s

Test "tutorial/055_emptyRec"

Expected: 👍 accept · Size: 1.2 KB · Lines: 21 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source

Asserting the type of the generated recursor

Test result: 👍 accepted · exit code 0 · wall time: 6 ms · instructions: 11.6 M · max rss memory: 7.2 MB

stderr:
checked in 0.000433s

Test "tutorial/056_boolRec"

Expected: 👍 accept · Size: 3.0 KB · Lines: 53 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source

Asserting the type of the generated recursor

Test result: 👍 accepted · exit code 0 · wall time: 6 ms · instructions: 11.7 M · max rss memory: 7.2 MB

stderr:
checked in 0.000413s

Test "tutorial/057_twoBoolRec"

Expected: 👍 accept · Size: 4.8 KB · Lines: 78 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source

Asserting the type of the generated recursor

Test result: 👍 accepted · exit code 0 · wall time: 6 ms · instructions: 11.9 M · max rss memory: 7.2 MB

stderr:
checked in 0.000445s

Test "tutorial/058_andRec"

Expected: 👍 accept · Size: 3.2 KB · Lines: 58 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source

Asserting the type of the generated recursor

Test result: 👍 accepted · exit code 0 · wall time: 6 ms · instructions: 11.7 M · max rss memory: 7.2 MB

stderr:
checked in 0.000446s

Test "tutorial/059_prodRec"

Expected: 👍 accept · Size: 4.0 KB · Lines: 79 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source

Asserting the type of the generated recursor

Test result: 👍 accepted · exit code 0 · wall time: 6 ms · instructions: 11.9 M · max rss memory: 7.2 MB

stderr:
checked in 0.000469s

Test "tutorial/060_pprodRec"

Expected: 👍 accept · Size: 4.0 KB · Lines: 78 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source

Asserting the type of the generated recursor

Test result: 👍 accepted · exit code 0 · wall time: 6 ms · instructions: 11.9 M · max rss memory: 7.2 MB

stderr:
checked in 0.000465s

Test "tutorial/061_punitRec"

Expected: 👍 accept · Size: 2.2 KB · Lines: 39 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source

Asserting the type of the generated recursor

Test result: 👍 accepted · exit code 0 · wall time: 6 ms · instructions: 11.7 M · max rss memory: 7.2 MB

stderr:
checked in 0.000390s

Test "tutorial/062_eqRec"

Expected: 👍 accept · Size: 3.3 KB · Lines: 63 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source

Asserting the type of the generated recursor

Test result: 👍 accepted · exit code 0 · wall time: 6 ms · instructions: 11.8 M · max rss memory: 7.2 MB

stderr:
checked in 0.000382s

Test "tutorial/063_nRec"

Expected: 👍 accept · Size: 3.3 KB · Lines: 61 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source

Asserting the type of the generated recursor

Test result: 👍 accepted · exit code 0 · wall time: 6 ms · instructions: 11.7 M · max rss memory: 7.2 MB

stderr:
checked in 0.000378s

Test "tutorial/064_rbTreeRef"

Expected: 👍 accept · Size: 16.2 KB · Lines: 303 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source

Asserting the type of the generated recursor

Test result: 👍 accepted · exit code 0 · wall time: 18 ms · instructions: 13.1 M · max rss memory: 7.5 MB

stderr:
checked in 0.000720s

Test "tutorial/065_boolPropRec"

Expected: 👍 accept · Size: 2.3 KB · Lines: 34 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source

Inductive predicates eliminate into Prop if they have more than one constructor.

Test result: 👍 accepted · exit code 0 · wall time: 6 ms · instructions: 11.6 M · max rss memory: 7.2 MB

stderr:
checked in 0.000418s

Test "tutorial/066_existsRec"

Expected: 👍 accept · Size: 3.6 KB · Lines: 66 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source

Inductive predicates eliminate into Prop if they have one constructors and it carries data.

Test result: 👍 accepted · exit code 0 · wall time: 6 ms · instructions: 11.8 M · max rss memory: 7.2 MB

stderr:
checked in 0.000406s

Test "tutorial/067_sortElimPropRec"

Expected: 👍 accept · Size: 5.6 KB · Lines: 97 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source

Inductive predicates eliminate into Sort if they have one constructors and it carries data, but the data is known from the type, e.g. a parameter or an index

Test result: 👍 accepted · exit code 0 · wall time: 6 ms · instructions: 11.9 M · max rss memory: 7.2 MB

stderr:
checked in 0.000427s

Test "tutorial/068_sortElimProp2Rec"

Expected: 👍 accept · Size: 6.6 KB · Lines: 114 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source

Inductive predicates eliminate into Sort if they have one constructors and it carries data, but the data is known from the type, e.g. a parameter or an index. However, it must occur directly in the result type, with no intervening reduction.

Test result: 👍 accepted · exit code 0 · wall time: 6 ms · instructions: 12.2 M · max rss memory: 7.4 MB

stderr:
checked in 0.000526s

Test "tutorial/069_boolRecEqns"

Expected: 👍 accept · Size: 10.8 KB · Lines: 199 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source

Reduction behavior of Bool.rec

Test result: 👍 accepted · exit code 0 · wall time: 6 ms · instructions: 12.8 M · max rss memory: 7.5 MB

stderr:
checked in 0.000673s

Test "tutorial/070_prodRecEqns"

Expected: 👍 accept · Size: 10.1 KB · Lines: 205 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source

Reduction behavior of Prod.rec

Test result: 👍 accepted · exit code 0 · wall time: 6 ms · instructions: 13.2 M · max rss memory: 7.6 MB

stderr:
checked in 0.000732s

Test "tutorial/071_nRecReduction"

Expected: 👍 accept · Size: 12.7 KB · Lines: 238 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source

A proof relying on the reduction behavior of N.rec

Test result: 👍 accepted · exit code 0 · wall time: 6 ms · instructions: 13.0 M · max rss memory: 7.5 MB

stderr:
checked in 0.000727s

Test "tutorial/072_listRecReduction"

Expected: 👍 accept · Size: 17.5 KB · Lines: 335 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source

Reduction behavior of List.rec

Test result: 👍 accepted · exit code 0 · wall time: 7 ms · instructions: 15.0 M · max rss memory: 8.0 MB

stderr:
checked in 0.001124s

Test "tutorial/073_RBTree.id_spec"

Expected: 👍 accept · Size: 47.9 KB · Lines: 1.0 k · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source

Reduction behavior of RBTree.rec

Test result: 👍 accepted · exit code 0 · wall time: 14 ms · instructions: 33.8 M · max rss memory: 14.2 MB

stderr:
checked in 0.008306s

Test "tutorial/074_And.right"

Expected: 👍 accept · Size: 4.3 KB · Lines: 74 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source

Type-checking simple projection functions

Test result: 👍 accepted · exit code 0 · wall time: 6 ms · instructions: 11.9 M · max rss memory: 7.2 MB

stderr:
checked in 0.000423s

Test "tutorial/075_Prod.snd"

Expected: 👍 accept · Size: 4.5 KB · Lines: 83 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source

Type-checking projection functions with parameters

Test result: 👍 accepted · exit code 0 · wall time: 6 ms · instructions: 11.9 M · max rss memory: 7.2 MB

stderr:
checked in 0.000457s

Test "tutorial/076_PProd.snd"

Expected: 👍 accept · Size: 4.5 KB · Lines: 83 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source

Type-checking projection functions

Test result: 👍 accepted · exit code 0 · wall time: 6 ms · instructions: 12.0 M · max rss memory: 7.2 MB

stderr:
checked in 0.000442s

Test "tutorial/077_PSigma.snd"

Expected: 👍 accept · Size: 5.1 KB · Lines: 96 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source

Type-checking dependent projection functions

Test result: 👍 accepted · exit code 0 · wall time: 6 ms · instructions: 12.1 M · max rss memory: 7.4 MB

stderr:
checked in 0.000467s

Test "tutorial/078_projOutOfRange"

Expected: ✋ reject · Size: 3.8 KB · Lines: 67 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source

Out of range projection

Test result: ✋ rejected · exit code 1 · wall time: 6 ms · instructions: 11.9 M · max rss memory: 7.2 MB

stderr:
def projOutOfRange : ∀ (x : Prop), ∀ (x : Prop), And x x → x :=
  fun x y z ↦ z.2
  ^^^^^^^^^^^^^^^
  invalid projection And.2: And has only 2 fields
checked in 0.000461s

Test "tutorial/079_projNotStruct"

Expected: ✋ reject · Size: 3.5 KB · Lines: 64 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source

Projection out something that is not a structure

Test result: ✋ rejected · exit code 1 · wall time: 6 ms · instructions: 11.7 M · max rss memory: 7.2 MB

stderr:
def projNotStruct : N → N :=
  fun x ↦ x.0
          ^^^
          N is not a structure (it has 2 constructors)
checked in 0.000391s

Test "tutorial/080_projProp1"

Expected: 👍 accept · Size: 8.2 KB · Lines: 143 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source

Projecting out of a proposition

The lean kernel allows projections out of propositions if they precede all dependent data fields.

Test result: 👍 accepted · exit code 0 · wall time: 6 ms · instructions: 12.1 M · max rss memory: 7.2 MB

stderr:
checked in 0.000469s

Test "tutorial/081_projProp2"

Expected: ✋ reject · Size: 8.2 KB · Lines: 143 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source

Projecting out of a proposition

The lean kernel disallows data projections out of propositional structures.

Test result: ✋ rejected · exit code 1 · wall time: 6 ms · instructions: 12.2 M · max rss memory: 7.2 MB

stderr:
def projProp2 : PropStructure.{0, 1} → PUnit.{1} :=
  fun x ↦ x.someData
          ^^^^^^^^^^
          cannot project a non-propositional field from a propositional structure
checked in 0.000518s

Test "tutorial/082_projProp3"

Expected: 👍 accept · Size: 8.2 KB · Lines: 143 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source

Projecting out of a proposition

The lean kernel allows projections out of propositions if they precede all dependent data fields. Non-dependent data fields are not relevant.

Test result: 👍 accepted · exit code 0 · wall time: 6 ms · instructions: 12.1 M · max rss memory: 7.2 MB

stderr:
checked in 0.000465s

Test "tutorial/083_projProp4"

Expected: ✋ reject · Size: 8.2 KB · Lines: 143 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source

Projecting out of a proposition

The lean kernel disallows data projections out of propositional structures.

Test result: ✋ rejected · exit code 1 · wall time: 6 ms · instructions: 12.1 M · max rss memory: 7.2 MB

stderr:
def projProp4 : PropStructure.{0, 1} → PUnit.{1} :=
  fun x ↦ x.someMoreData
          ^^^^^^^^^^^^^^
          cannot project a non-propositional field from a propositional structure
checked in 0.000604s

Test "tutorial/084_projProp5"

Expected: ✋ reject · Size: 8.4 KB · Lines: 148 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source

Projecting out of a proposition

The lean kernel disallows proof projections out of propositional structures that depend on data.

Test result: ✋ rejected · exit code 1 · wall time: 6 ms · instructions: 12.2 M · max rss memory: 7.2 MB

stderr:
def projProp5 : ∀ (x : PropStructure.{0, 1}), Eq x.someMoreData x.someMoreData :=
                                                 ^^^^^^^^^^^^^^
                                                 cannot project a non-propositional field from a propositional structure
checked in 0.000554s

Test "tutorial/085_projProp6"

Expected: ✋ reject · Size: 8.2 KB · Lines: 143 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source

Projecting out of a proposition.

The lean kernel rejects any projections out of a proposition that come after a dependent data field, even if that is not used by the present projection.

Test result: ✋ rejected · exit code 1 · wall time: 6 ms · instructions: 12.1 M · max rss memory: 7.2 MB

stderr:
def projProp6 : PropStructure.{0, 1} → PUnit.{0} :=
  fun x ↦ x.aFinalProof
          ^^^^^^^^^^^^^
          cannot project a non-propositional field from a propositional structure
checked in 0.000487s

Test "tutorial/086_projDataIndexRec"

Expected: 👍 accept · Size: 6.8 KB · Lines: 111 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source

The recursor for ProjDataIndex allows elimination into sort.

Test result: 👍 accepted · exit code 0 · wall time: 6 ms · instructions: 12.0 M · max rss memory: 7.2 MB

stderr:
checked in 0.000446s

Test "tutorial/087_projIndexData"

Expected: ✋ reject · Size: 6.8 KB · Lines: 111 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source

Projecting out data is not allowed, even if this data appears as an index and the recursor would allow it.

Test result: ✋ rejected · exit code 1 · wall time: 6 ms · instructions: 12.0 M · max rss memory: 7.2 MB

stderr:
def projIndexData : (x : N) → ProjDataIndex x → N :=
  fun x x ↦ x.0
  ^^^^^^^^^^^^^
  invalid projection PropStructure.0: unknown structure PropStructure
checked in 0.000484s

Test "tutorial/088_projIndexData2"

Expected: ✋ reject · Size: 6.8 KB · Lines: 111 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source

Projecting out data is not allowed, even if this data appears as an index and the recursor would allow it.

This also forbids projecting out proofs that follow such fields.

Test result: ✋ rejected · exit code 1 · wall time: 6 ms · instructions: 12.0 M · max rss memory: 7.2 MB

stderr:
def projIndexData2 : ∀ (x : N), ProjDataIndex x → True :=
  fun x x ↦ x.1
  ^^^^^^^^^^^^^
  invalid projection PropStructure.1: unknown structure PropStructure
checked in 0.000448s

Test "tutorial/089_projRed"

Expected: 👍 accept · Size: 9.9 KB · Lines: 177 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source

Projection reductions

Test result: 👍 accepted · exit code 0 · wall time: 6 ms · instructions: 12.3 M · max rss memory: 7.4 MB

stderr:
checked in 0.000538s

Test "tutorial/090_ruleK"

Expected: 👍 accept · Size: 6.5 KB · Lines: 121 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source

Rule k for Eq: The recursor reduces even if the major argument is not a constructor, as long replacing the major argument with a constructor is type correct.

Test result: 👍 accepted · exit code 0 · wall time: 6 ms · instructions: 12.1 M · max rss memory: 7.2 MB

stderr:
checked in 0.000466s

Test "tutorial/091_ruleKbad"

Expected: ✋ reject · Size: 6.5 KB · Lines: 121 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source

Rule k for Eq should not fire if the types of the major argument do not match that of the constructor.

Test result: ✋ rejected · exit code 1 · wall time: 6 ms · instructions: 12.3 M · max rss memory: 7.4 MB

stderr:
theorem ruleKbad : ∀ (h : Eq Bool.true Bool.false), ∀ (a : Bool), Eq (Eq.rec a h) a := fun x a ↦ Eq.refl a
                                                                                       ^^^^^^^^^^^^^^^^^^^
                                                                                       has type
                                                                                         Eq Bool.true Bool.false → ∀ (a : Bool), Eq a a
                                                                                       but is expected to have type
                                                                                         ∀ (h : Eq Bool.true Bool.false), ∀ (a : Bool), Eq (Eq.rec a h) a
checked in 0.000561s

Test "tutorial/092_ruleKAcc"

Expected: ✋ reject · Size: 12.8 KB · Lines: 238 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source

Rule k should not fire for Acc.

Test result: ✋ rejected · exit code 1 · wall time: 6 ms · instructions: 13.9 M · max rss memory: 7.8 MB

stderr:
theorem ruleKAcc.{u} : ∀ (α : Sort u), ∀ (p : ∀ (a : α), ∀ (a : α), Prop), ∀ (x : α), ∀ (h : Acc p x), ∀ (a : Bool), Eq (Acc.rec (fun x x x ↦ a) h) a := fun α p x h a ↦ Eq.refl a
                                                                                                                                                         ^^^^^^^^^^^^^^^^^^^^^^^^^
                                                                                                                                                         has type
                                                                                                                                                           ∀ (α : Sort u), ∀ (p : ∀ (a : α), ∀ (a : α), Prop), ∀ (x : α), Acc p x → ∀ (a : Bool), Eq a a
                                                                                                                                                         but is expected to have type
                                                                                                                                                           ∀ (α : Sort u), ∀ (p : ∀ (a : α), ∀ (a : α), Prop), ∀ (x : α), ∀ (h : Acc p x), ∀ (a : Bool), Eq (Acc.rec (fun x x x ↦ a) h) a
checked in 0.000890s

Test "tutorial/093_aNatLit"

Expected: 👍 accept · Size: 3.0 KB · Lines: 54 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source

Type checking Nat literals

Test result: 👍 accepted · exit code 0 · wall time: 6 ms · instructions: 11.6 M · max rss memory: 7.2 MB

stderr:
checked in 0.000324s

Test "tutorial/094_natLitEq"

Expected: 👍 accept · Size: 6.1 KB · Lines: 114 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source

Reducing Nat literals

Test result: 👍 accepted · exit code 0 · wall time: 6 ms · instructions: 12.0 M · max rss memory: 7.2 MB

stderr:
checked in 0.000436s

Test "tutorial/095_proofIrrelevance"

Expected: 👍 accept · Size: 5.0 KB · Lines: 100 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source

Proof irrelevance

Test result: 👍 accepted · exit code 0 · wall time: 6 ms · instructions: 11.9 M · max rss memory: 7.2 MB

stderr:
checked in 0.000433s

Test "tutorial/096_unitEta1"

Expected: 👍 accept · Size: 6.2 KB · Lines: 116 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source

Unit eta

Test result: 👍 accepted · exit code 0 · wall time: 14 ms · instructions: 12.0 M · max rss memory: 7.2 MB

stderr:
checked in 0.000455s

Test "tutorial/097_unitEta2"

Expected: 👍 accept · Size: 6.0 KB · Lines: 109 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source

Unit eta

Test result: 👍 accepted · exit code 0 · wall time: 6 ms · instructions: 12.0 M · max rss memory: 7.2 MB

stderr:
checked in 0.000412s

Test "tutorial/098_unitEta3"

Expected: 👍 accept · Size: 6.0 KB · Lines: 111 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source

Unit eta

Test result: 👍 accepted · exit code 0 · wall time: 6 ms · instructions: 12.0 M · max rss memory: 7.2 MB

stderr:
checked in 0.000415s

Test "tutorial/099_structEta"

Expected: 👍 accept · Size: 12.5 KB · Lines: 230 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source

Structure eta

Test result: 👍 accepted · exit code 0 · wall time: 6 ms · instructions: 13.1 M · max rss memory: 7.5 MB

stderr:
checked in 0.000668s

Test "tutorial/100_funEta"

Expected: 👍 accept · Size: 5.2 KB · Lines: 104 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source

Function eta for non-dependent functions.

Test result: 👍 accepted · exit code 0 · wall time: 6 ms · instructions: 12.0 M · max rss memory: 7.2 MB

stderr:
checked in 0.000512s

Test "tutorial/101_funEtaDep"

Expected: 👍 accept · Size: 5.3 KB · Lines: 106 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source

Function eta for dependent functions (pi types).

Test result: 👍 accepted · exit code 0 · wall time: 6 ms · instructions: 12.1 M · max rss memory: 7.4 MB

stderr:
checked in 0.000464s

Test "tutorial/102_funEtaBad"

Expected: ✋ reject · Size: 4.9 KB · Lines: 97 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source

Eta should not identify functions with different bodies.

Test result: ✋ rejected · exit code 1 · wall time: 6 ms · instructions: 12.3 M · max rss memory: 7.4 MB

stderr:
theorem funEtaBad : ∀ (α : Type), ∀ (β : Type), ∀ (g : α → α), ∀ (f : α → β), Eq (fun x ↦ f (g x)) f := fun x x x f ↦ Eq.refl f
                                                                                                        ^^^^^^^^^^^^^^^^^^^^^^^
                                                                                                        has type
                                                                                                          ∀ (x : Type), ∀ (x : Type), ∀ (x : x → x), ∀ (f : x → x), Eq f f
                                                                                                        but is expected to have type
                                                                                                          ∀ (α : Type), ∀ (β : Type), ∀ (g : α → α), ∀ (f : α → β), Eq (fun x ↦ f (g x)) f
checked in 0.000627s

Test "tutorial/103_etaRuleK"

Expected: ✋ reject · Size: 6.5 KB · Lines: 121 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source

Corner case for function eta: Does a defeq between a partially applied recursor with rule k and a free variable trigger eta expansion?

Taking the official kernel as the specification, the answer is no. See https://github.com/leanprover/lean4/issues/12520 for a discussion.

Test result: ✋ rejected · exit code 1 · wall time: 6 ms · instructions: 12.3 M · max rss memory: 7.4 MB

stderr:
def etaRuleK : ∀ (a : Eq Bool.true Bool.true → Bool), Eq (Eq.rec (a (Eq.refl Bool.true))) a :=
  fun a ↦ Eq.refl a
  ^^^^^^^^^^^^^^^^^
  has type
    ∀ (a : Eq Bool.true Bool.true → Bool), Eq a a
  but is expected to have type
    ∀ (a : Eq Bool.true Bool.true → Bool), Eq (Eq.rec (a (Eq.refl Bool.true))) a
checked in 0.000556s

Test "tutorial/104_etaCtor"

Expected: ✋ reject · Size: 9.0 KB · Lines: 148 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source

Corner case for function eta: Does a defeq between a partially applied constructor trigger eta expansion?

Taking the official kernel as the specification, the answer is no. See https://github.com/leanprover/lean4/issues/12520 for a discussion.

Test result: ✋ rejected · exit code 1 · wall time: 6 ms · instructions: 12.3 M · max rss memory: 7.4 MB

stderr:
def etaCtor : ∀ (x : True → T), Eq (T.mk (T.val (x True.intro))) x :=
  fun x ↦ Eq.refl x
  ^^^^^^^^^^^^^^^^^
  has type
    ∀ (x : True → T), Eq x x
  but is expected to have type
    ∀ (x : True → T), Eq (T.mk (T.val (x True.intro))) x
checked in 0.000565s

Test "tutorial/105_reflOccLeft"

Expected: ✋ reject · Size: 3.7 KB · Lines: 61 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source

Rejection: recursive occurrence on the left of an arrow, behind further arrows inside a constructor argument.

The constructor argument is a function type Nat → (I → Nat).

Test result: ✋ rejected · exit code 1 · wall time: 6 ms · instructions: 11.7 M · max rss memory: 7.2 MB

stderr:
inductive reflOccLeft : Type
| mk : (Nat → reflOccLeft → Nat) → reflOccLeft
        ^^^^^^^^^^^^^^^^^^^^^^^
        arg #1 has a non-positive occurrence of the datatype being declared
checked in 0.000383s

Test "tutorial/106_reflOccInIndex"

Expected: ✋ reject · Size: 4.0 KB · Lines: 66 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source

Rejection: recursive occurrence in index position, behind a further arrow.

We build an indexed inductive I : Type → Type with a constructor argument Nat → I (I α), so the recursive occurrence appears as an index argument.

Test result: ✋ rejected · exit code 1 · wall time: 6 ms · instructions: 11.8 M · max rss memory: 7.2 MB

stderr:
inductive reflOccInIndex : Type → Type
| mk : (α : Type) → ((x : Nat) → reflOccInIndex (reflOccInIndex x)) → reflOccInIndex α
       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
       constructor declares 1 field but type has 2
checked in 0.000432s

Test "tutorial/107_reduceCtorParamRefl.mk"

Expected: 👍 accept · Size: 4.5 KB · Lines: 88 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source

When checking inductives, we expect the kernel to reduce the types of constructor arguments in all positive positions.

Test result: 👍 accepted · exit code 0 · wall time: 6 ms · instructions: 11.8 M · max rss memory: 7.2 MB

stderr:
checked in 0.000427s

Test "tutorial/108_reduceCtorParamRefl2.mk"

Expected: 👍 accept · Size: 4.5 KB · Lines: 88 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source

When checking inductives, we expect the kernel to reduce the types of constructor arguments in all positive positions.

Test result: 👍 accepted · exit code 0 · wall time: 6 ms · instructions: 11.8 M · max rss memory: 7.2 MB

stderr:
checked in 0.000446s

Test "tutorial/109_rTreeRec"

Expected: 👍 accept · Size: 5.5 KB · Lines: 91 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source

Asserting the type of the generated recursor.

Test result: 👍 accepted · exit code 0 · wall time: 6 ms · instructions: 11.9 M · max rss memory: 7.2 MB

stderr:
checked in 0.000477s

Test "tutorial/110_rtreeRecReduction"

Expected: 👍 accept · Size: 10.8 KB · Lines: 193 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source

Reduction behavior of RTree.rec on RTree.mk.

Test result: 👍 accepted · exit code 0 · wall time: 6 ms · instructions: 12.6 M · max rss memory: 7.4 MB

stderr:
checked in 0.000686s

Test "tutorial/111_accRecType"

Expected: 👍 accept · Size: 7.5 KB · Lines: 151 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source

Asserting the type of Acc.rec.

Test result: 👍 accepted · exit code 0 · wall time: 6 ms · instructions: 12.2 M · max rss memory: 7.4 MB

stderr:
checked in 0.000497s

Test "tutorial/112_accRecReduction"

Expected: 👍 accept · Size: 13.4 KB · Lines: 252 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source

Acc.rec reduces on Acc.intro.

Test result: 👍 accepted · exit code 0 · wall time: 7 ms · instructions: 14.4 M · max rss memory: 7.9 MB

stderr:
checked in 0.001015s

Test "tutorial/113_accRecNoEta"

Expected: ✋ reject · Size: 13.0 KB · Lines: 244 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source

Acc.rec does not have structure eta.

Test result: ✋ rejected · exit code 1 · wall time: 6 ms · instructions: 13.9 M · max rss memory: 7.8 MB

stderr:
theorem accRecNoEta : ∀ {α : Type}, ∀ (r : ∀ (a : α), ∀ (a : α), Prop), ∀ (a : α), ∀ (h : Acc r a), ∀ (p : Bool), Eq (Acc.rec (fun x x x ↦ p) h) p := fun α r a h p ↦ Eq.refl p
                                                                                                                                                      ^^^^^^^^^^^^^^^^^^^^^^^^^
                                                                                                                                                      has type
                                                                                                                                                        ∀ (α : Type), ∀ (r : ∀ (a : α), ∀ (a : α), Prop), ∀ (a : α), Acc r a → ∀ (p : Bool), Eq p p
                                                                                                                                                      but is expected to have type
                                                                                                                                                        ∀ {α : Type}, ∀ (r : ∀ (a : α), ∀ (a : α), Prop), ∀ (a : α), ∀ (h : Acc r a), ∀ (p : Bool), Eq (Acc.rec (fun x x x ↦ p) h) p
checked in 0.000899s

Test "tutorial/114_quotMkType"

Expected: 👍 accept · Size: 6.3 KB · Lines: 123 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source

Asserting the type of Quot.mk.

Test result: 👍 accepted · exit code 0 · wall time: 6 ms · instructions: 12.1 M · max rss memory: 7.2 MB

stderr:
checked in 0.000526s

Test "tutorial/115_quotIndType"

Expected: 👍 accept · Size: 6.3 KB · Lines: 124 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source

Asserting the type of Quot.ind.

Test result: 👍 accepted · exit code 0 · wall time: 6 ms · instructions: 12.1 M · max rss memory: 7.2 MB

stderr:
checked in 0.000456s

Test "tutorial/116_quotLiftType"

Expected: 👍 accept · Size: 6.3 KB · Lines: 124 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source

Asserting the type of Quot.lift.

Test result: 👍 accepted · exit code 0 · wall time: 6 ms · instructions: 12.0 M · max rss memory: 7.2 MB

stderr:
checked in 0.000512s

Test "tutorial/117_quotSoundType"

Expected: 👍 accept · Size: 7.2 KB · Lines: 141 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source

Asserting the type of Quot.sound.

Test result: 👍 accepted · exit code 0 · wall time: 6 ms · instructions: 12.2 M · max rss memory: 7.4 MB

stderr:
checked in 0.000542s

Test "tutorial/118_quotLiftReduction"

Expected: 👍 accept · Size: 7.8 KB · Lines: 153 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source

Reduction behavior of Quot.lift on Quot.mk.

Test result: 👍 accepted · exit code 0 · wall time: 6 ms · instructions: 12.8 M · max rss memory: 7.5 MB

stderr:
checked in 0.000724s

Test "tutorial/119_quotIndReduction"

Expected: 👍 accept · Size: 7.6 KB · Lines: 151 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source

Reduction behavior of Quot.ind on Quot.mk.

Test result: 👍 accepted · exit code 0 · wall time: 6 ms · instructions: 12.7 M · max rss memory: 7.5 MB

stderr:
checked in 0.000656s

Test "tutorial/120_dup_defs"

Expected: ✋ reject · Size: 479 B · Lines: 7 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source

Two definitions with the same name

Test result: ✋ rejected · exit code 1 · wall time: 6 ms · instructions: 11.5 M · max rss memory: 7.1 MB

stderr:
Invalid declaration dup_defs: already declared as def dup_defs : Type :=
  Prop

checked in 0.000336s

Test "tutorial/121_dup_ind_def"

Expected: ✋ reject · Size: 1.7 KB · Lines: 27 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source

A definition and a constructor with the same name

Test result: ✋ rejected · exit code 1 · wall time: 6 ms · instructions: 11.5 M · max rss memory: 7.0 MB

stderr:
expected name index 4, got 8

checked in 0.000306s

Test "tutorial/122_dup_ctor_def"

Expected: ✋ reject · Size: 1.7 KB · Lines: 27 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source

A definition and a constructor with the same name

Test result: ✋ rejected · exit code 1 · wall time: 6 ms · instructions: 11.4 M · max rss memory: 7.0 MB

stderr:
expected name index 4, got 8

checked in 0.000298s

Test "tutorial/123_dup_rec_def"

Expected: ✋ reject · Size: 1.7 KB · Lines: 27 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source

A definition and a recursor with the same name

Test result: ✋ rejected · exit code 1 · wall time: 6 ms · instructions: 11.5 M · max rss memory: 7.0 MB

stderr:
expected name index 4, got 8

checked in 0.000329s

Test "tutorial/124_dup_rec_def2"

Expected: ✋ reject · Size: 1.7 KB · Lines: 28 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source

A definition with the name of a recursor, and the recursor named differently. This would pass simple checks for duplicate definitions in the parser, but should still be rejected by the checker.

Test result: ✋ rejected · exit code 1 · wall time: 6 ms · instructions: 11.4 M · max rss memory: 7.0 MB

stderr:
expected name index 5, got 9

checked in 0.000339s

Test "tutorial/125_dup_ctor_rec"

Expected: ✋ reject · Size: 1.5 KB · Lines: 24 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source

A constructor and a recursor with the same name

Test result: ✋ rejected · exit code 1 · wall time: 6 ms · instructions: 11.4 M · max rss memory: 6.9 MB

stderr:
expected name index 3, got 6

checked in 0.000304s

Test "tutorial/126_DupConCon"

Expected: ✋ reject · Size: 2.2 KB · Lines: 35 · lean4export: 3.1.0 · Lean: 4.27.0-rc1 · 📄 Declaration · 🔗 Source

An inductive with two constructors with the same name

Test result: ✋ rejected · exit code 1 · wall time: 6 ms · instructions: 11.4 M · max rss memory: 6.9 MB

stderr:
expected name index 4, got 7

checked in 0.000348s