@[instance]
def
lists'.decidable_eq
(α : Type u)
[a : decidable_eq α]
(a_1 : bool) :
decidable_eq (lists' α a_1)
@[instance]
Equations
@[simp]
theorem
lists'.to_list_cons
{α : Type u_1}
(a : lists α)
(l : lists' α bool.tt) :
(lists'.cons a l).to_list = a :: l.to_list
@[simp]
Equations
- lists'.of_list (a :: l) = lists'.cons a (lists'.of_list l)
- lists'.of_list list.nil = lists'.nil
@[simp]
@[simp]
@[instance]
Equations
- lists'.has_subset = {subset := lists'.subset α}
@[simp]
theorem
lists'.mem_cons
{α : Type u_1}
{a y : lists α}
{l : lists' α bool.tt} :
a ∈ lists'.cons y l ↔ a.equiv y ∨ a ∈ l
theorem
lists'.of_list_subset
{α : Type u_1}
{l₁ l₂ : list (lists α)} :
l₁ ⊆ l₂ → lists'.of_list l₁ ⊆ lists'.of_list l₂
Equations
- lists.atom a = ⟨bool.ff, lists'.atom a⟩
@[simp]
Equations
- lists.to_list ⟨b, l⟩ = l.to_list
Equations
@[instance]
Equations
@[instance]
Equations
- lists.decidable_eq = lists.decidable_eq._proof_1.mpr (λ (a b : Σ (b : bool), lists' α b), sigma.decidable_eq a b)
@[instance]
Equations
- lists.has_sizeof = lists.has_sizeof._proof_1.mpr (sigma.has_sizeof bool (λ (b : bool), lists' α b))
def
lists.induction_mut
{α : Type u_1}
(C : lists α → Sort u_2)
(D : lists' α bool.tt → Sort u_3) :
(Π (a : α), C (lists.atom a)) → (Π (l : lists' α bool.tt), D l → C (lists.of' l)) → D lists'.nil → (Π (a : lists α) (l : lists' α bool.tt), C a → D l → D (lists'.cons a l)) → pprod (Π (l : lists α), C l) (Π (l : lists' α bool.tt), D l)
Equations
- lists.induction_mut C D C0 C1 D0 D1 = ⟨λ (_x : lists α), lists.induction_mut._match_2 C D (λ (b : bool) (l : lists' α b), lists'.rec (λ (a : α), ⟨C0 a, punit.star⟩) ⟨C1 lists'.nil D0, D0⟩ (λ {b : bool} (a : lists' α b) (l : lists' α bool.tt) (IH₁ : pprod (C ⟨b, a⟩) (lists.induction_mut._match_1 D b a)) (IH₂ : pprod (C ⟨bool.tt, l⟩) (lists.induction_mut._match_1 D bool.tt l)), ⟨C1 (a.cons' l) (D1 ⟨b, a⟩ l IH₁.fst IH₂.snd), D1 ⟨b, a⟩ l IH₁.fst IH₂.snd⟩) l) _x, λ (l : lists' α bool.tt), ((λ (b : bool) (l : lists' α b), lists'.rec (λ (a : α), ⟨C0 a, punit.star⟩) ⟨C1 lists'.nil D0, D0⟩ (λ {b : bool} (a : lists' α b) (l : lists' α bool.tt) (IH₁ : pprod (C ⟨b, a⟩) (lists.induction_mut._match_1 D b a)) (IH₂ : pprod (C ⟨bool.tt, l⟩) (lists.induction_mut._match_1 D bool.tt l)), ⟨C1 (a.cons' l) (D1 ⟨b, a⟩ l IH₁.fst IH₂.snd), D1 ⟨b, a⟩ l IH₁.fst IH₂.snd⟩) l) bool.tt l).snd⟩
- lists.induction_mut._match_2 C D this ⟨b, l⟩ = (this l).fst
- lists.induction_mut._match_1 D bool.tt l = D l
- lists.induction_mut._match_1 D bool.ff l = punit
@[instance]
Equations
- lists.has_mem = {mem := lists.mem α}
theorem
lists.equiv_atom
{α : Type u_1}
{a : α}
{l : lists α} :
(lists.atom a).equiv l ↔ lists.atom a = l
@[instance]
Equations
- lists.setoid = {r := lists.equiv α, iseqv := _}
@[instance]
Equations
@[instance]
Equations
- finsets.inhabited = {default := ∅}
@[instance]
Equations
- finsets.decidable_eq = finsets.decidable_eq._proof_1.mpr (λ (a b : quotient lists.setoid), quotient.decidable_eq a b)