/-- Constructs an equivalence between finite distributive lattices from an order isomorphism
between them. -/
@[simps]
def Iso.mk {α β : FinBddDistLat.{u}} (e : α ≃o β) : α ≅ β where
  hom := (e : BoundedLatticeHom α β)
  inv := (e.symm : BoundedLatticeHom β α)
  hom_inv_id := by ext; 

Proof state:
case w
α β : FinBddDistLat
e : ↑α.toBddDistLat.toDistLat ≃o ↑β.toBddDistLat.toDistLat
x✝ : (forget FinBddDistLat).obj α
⊢ ((let src :=
          { toSupHom := { toFun := ⇑e, map_sup' := (_ : ∀ (a b : ↑α.toBddDistLat.toDistLat), e (a ⊔ b) = e a ⊔ e b) },
            map_inf' := (_ : ∀ (a b : ↑α.toBddDistLat.toDistLat), e (a ⊓ b) = e a ⊓ e b) };
        {
          toLatticeHom :=
            {
              toSupHom :=
                { toFun := ⇑e,
                  map_sup' :=
                    (_ :
                      ∀ (a b : ↑α.toBddDistLat.toDistLat),
                        SupHom.toFun
                            {
                                toSupHom :=
                                  { toFun := ⇑e,
                                    map_sup' := (_ : ∀ (a b : ↑α.toBddDistLat.toDistLat), e (a ⊔ b) = e a ⊔ e b) },
                                map_inf' := (_ : ∀ (a b : ↑α.toBddDistLat.toDistLat), e (a ⊓ b) = e a ⊓ e b) }.toSupHom
                            (a ⊔ b) =
                          SupHom.toFun
                              {
                                  toSupHom :=
                                    { toFun := ⇑e,
                                      map_sup' := (_ : ∀ (a b : ↑α.toBddDistLat.toDistLat), e (a ⊔ b) = e a ⊔ e b) },
                                  map_inf' :=
                                    (_ : ∀ (a b : ↑α.toBddDistLat.toDistLat), e (a ⊓ b) = e a ⊓ e b) }.toSupHom
                              a ⊔
                            SupHom.toFun
                              {
                                  toSupHom :=
                                    { toFun := ⇑e,
                                      map_sup' := (_ : ∀ (a b : ↑α.toBddDistLat.toDistLat), e (a ⊔ b) = e a ⊔ e b) },
                                  map_inf' :=
                                    (_ : ∀ (a b : ↑α.toBddDistLat.toDistLat), e (a ⊓ b) = e a ⊓ e b) }.toSupHom
                              b) },
              map_inf' :=
                (_ :
                  ∀ (a b : ↑α.toBddDistLat.toDistLat),
                    SupHom.toFun src.toSupHom (a ⊓ b) = SupHom.toFun src.toSupHom a ⊓ SupHom.toFun src.toSupHom b) },
          map_top' := (_ : e ⊤ = ⊤), map_bot' := (_ : e ⊥ = ⊥) }) ≫
        let src :=
          {
            toSupHom :=
              { toFun := ⇑(OrderIso.symm e),
                map_sup' :=
                  (_ :
                    ∀ (a b : ↑β.toBddDistLat.toDistLat),
                      (OrderIso.symm e) (a ⊔ b) = (OrderIso.symm e) a ⊔ (OrderIso.symm e) b) },
            map_inf' :=
              (_ :
                ∀ (a b : ↑β.toBddDistLat.toDistLat),
                  (OrderIso.symm e) (a ⊓ b) = (OrderIso.symm e) a ⊓ (OrderIso.symm e) b) };
        {
          toLatticeHom :=
            {
              toSupHom :=
                { toFun := ⇑(OrderIso.symm e),
                  map_sup' :=
                    (_ :
                      ∀ (a b : ↑β.toBddDistLat.toDistLat),
                        SupHom.toFun
                            {
                                toSupHom :=
                                  { toFun := ⇑(OrderIso.symm e),
                                    map_sup' :=
                                      (_ :
                                        ∀ (a b : ↑β.toBddDistLat.toDistLat),
                                          (OrderIso.symm e) (a ⊔ b) = (OrderIso.symm e) a ⊔ (OrderIso.symm e) b) },
                                map_inf' :=
                                  (_ :
                                    ∀ (a b : ↑β.toBddDistLat.toDistLat),
                                      (OrderIso.symm e) (a ⊓ b) = (OrderIso.symm e) a ⊓ (OrderIso.symm e) b) }.toSupHom
                            (a ⊔ b) =
                          SupHom.toFun
                              {
                                  toSupHom :=
                                    { toFun := ⇑(OrderIso.symm e),
                                      map_sup' :=
                                        (_ :
                                          ∀ (a b : ↑β.toBddDistLat.toDistLat),
                                            (OrderIso.symm e) (a ⊔ b) = (OrderIso.symm e) a ⊔ (OrderIso.symm e) b) },
                                  map_inf' :=
                                    (_ :
                                      ∀ (a b : ↑β.toBddDistLat.toDistLat),
                                        (OrderIso.symm e) (a ⊓ b) =
                                          (OrderIso.symm e) a ⊓ (OrderIso.symm e) b) }.toSupHom
                              a ⊔
                            SupHom.toFun
                              {
                                  toSupHom :=
                                    { toFun := ⇑(OrderIso.symm e),
                                      map_sup' :=
                                        (_ :
                                          ∀ (a b : ↑β.toBddDistLat.toDistLat),
                                            (OrderIso.symm e) (a ⊔ b) = (OrderIso.symm e) a ⊔ (OrderIso.symm e) b) },
                                  map_inf' :=
                                    (_ :
                                      ∀ (a b : ↑β.toBddDistLat.toDistLat),
                                        (OrderIso.symm e) (a ⊓ b) =
                                          (OrderIso.symm e) a ⊓ (OrderIso.symm e) b) }.toSupHom
                              b) },
              map_inf' :=
                (_ :
                  ∀ (a b : ↑β.toBddDistLat.toDistLat),
                    SupHom.toFun src.toSupHom (a ⊓ b) = SupHom.toFun src.toSupHom a ⊓ SupHom.toFun src.toSupHom b) },
          map_top' := (_ : (OrderIso.symm e) ⊤ = ⊤), map_bot' := (_ : (OrderIso.symm e) ⊥ = ⊥) })
      x✝ =
    (𝟙 α) x✝

Next tactic:
exact e.symm_apply_apply _