Equations
- sequence_lift t = ⟨t, ⋯⟩
Instances For
Equations
Instances For
Equations
Instances For
Equations
- Sequence.cons a s = ⟨a :: ↑s, ⋯⟩
Instances For
Equations
- Sequence.foldr f b s_1 = b
- Sequence.foldr f b s_1 = match s_1.destruct with | (a, as) => f a (Sequence.foldr f b as)
Instances For
Equations
- Sequence.foldl f b s_1 = b
- Sequence.foldl f b s_1 = Sequence.foldl f (f b s_1.head) s_1.tail
Instances For
Equations
- sequence_coerce hEq_2 s_2 = Sequence.nil
- sequence_coerce hEq_2 s_2 = Sequence.cons s_2.head (sequence_coerce ⋯ s_2.tail)
Instances For
Equations
- Sequence.constant Nat.zero a = Sequence.nil
- Sequence.constant pn.succ a = Sequence.cons a (Sequence.constant pn a)
Instances For
Equations
- zip_succ_int h seq_2 = Sequence.single (h, seq_2.head)
- zip_succ_int h seq_2 = Sequence.cons (h, seq_2.head) (zip_succ_int seq_2.head seq_2.tail)
Instances For
Equations
- Sequence.map f seq = ⟨List.map f ↑seq, ⋯⟩
Instances For
def
Sequence.zip_with
{α β ε : Type}
{n : ℕ}
(f : α → β → ε)
(sl : Sequence n α)
(sr : Sequence n β)
:
Sequence n ε
Equations
- Sequence.zip_with f sl_2 sr_2 = Sequence.nil
- Sequence.zip_with f sl_2 sr_2 = Sequence.cons (f sl_2.head sr_2.head) (Sequence.zip_with f sl_2.tail sr_2.tail)
Instances For
Equations
- Sequence.nats' start = Sequence.nil
- Sequence.nats' start = Sequence.cons start (Sequence.nats' start.succ)
Instances For
Equations
- Sequence.imap f seq = Sequence.zip_with (flip f) seq Sequence.nats
Instances For
Equations
- Sequence.join f seq_2 = Sequence.nil
- Sequence.join f seq_2 = Sequence.cons (f seq_2.head seq_2.tail.head) (Sequence.join f seq_2.tail.tail)
Instances For
Equations
- half_split seq = (Sequence.take n ⋯ seq, sequence_coerce ⋯ (Sequence.drop n seq))
Instances For
Equations
- half_split_pow seq = (Sequence.take (2 ^ n) ⋯ seq, sequence_coerce ⋯ (Sequence.drop (2 ^ n) seq))
Instances For
Equations
- Sequence.consume_pow f seq_2 = seq_2.head
- Sequence.consume_pow f seq_2 = Sequence.consume_pow f (Sequence.join f (sequence_coerce ⋯ seq_2))
Instances For
Equations
- sequence_forget seq = ↑seq
Instances For
theorem
coerce_eq_comm
{α : Type}
{n m : ℕ}
{heq : n = m}
(seql : Sequence n α)
(seqr : Sequence m α)
:
sequence_coerce heq seql = seqr → seql = sequence_coerce ⋯ seqr
theorem
coerce_eq_comm'
{α : Type}
{n m : ℕ}
{heq : m = n}
(seql : Sequence n α)
(seqr : Sequence m α)
:
seql = sequence_coerce heq seqr → sequence_coerce ⋯ seql = seqr
theorem
coerce_eq_coerce
{α : Type}
{n m l : ℕ}
{reql : n = l}
{reqr : m = l}
(seql : Sequence n α)
(seqr : Sequence m α)
:
sequence_coerce reql seql = sequence_coerce reqr seqr → sequence_coerce ⋯ seql = seqr