Equations
- One or more equations did not get rendered due to their size.
- Regex.NFA.instReprNode.repr Regex.NFA.Node.done prec✝ = Repr.addAppParen (Std.Format.nest (if prec✝ ≥ 1024 then 1 else 2) (Std.Format.text "Regex.NFA.Node.done")).group prec✝
- Regex.NFA.instReprNode.repr Regex.NFA.Node.fail prec✝ = Repr.addAppParen (Std.Format.nest (if prec✝ ≥ 1024 then 1 else 2) (Std.Format.text "Regex.NFA.Node.fail")).group prec✝
Instances For
Equations
- Regex.NFA.instReprNode = { reprPrec := Regex.NFA.instReprNode.repr }
Equations
- Regex.NFA.instDecidableEqNode.decEq Regex.NFA.Node.done Regex.NFA.Node.done = isTrue ⋯
- Regex.NFA.instDecidableEqNode.decEq Regex.NFA.Node.done Regex.NFA.Node.fail = isFalse Regex.NFA.instDecidableEqNode.decEq._proof_1
- Regex.NFA.instDecidableEqNode.decEq Regex.NFA.Node.done (Regex.NFA.Node.epsilon next) = isFalse ⋯
- Regex.NFA.instDecidableEqNode.decEq Regex.NFA.Node.done (Regex.NFA.Node.anchor anchor next) = isFalse ⋯
- Regex.NFA.instDecidableEqNode.decEq Regex.NFA.Node.done (Regex.NFA.Node.char c next) = isFalse ⋯
- Regex.NFA.instDecidableEqNode.decEq Regex.NFA.Node.done (Regex.NFA.Node.split next₁ next₂) = isFalse ⋯
- Regex.NFA.instDecidableEqNode.decEq Regex.NFA.Node.done (Regex.NFA.Node.save offset next) = isFalse ⋯
- Regex.NFA.instDecidableEqNode.decEq Regex.NFA.Node.done (Regex.NFA.Node.sparse cs next) = isFalse ⋯
- Regex.NFA.instDecidableEqNode.decEq Regex.NFA.Node.fail Regex.NFA.Node.done = isFalse Regex.NFA.instDecidableEqNode.decEq._proof_8
- Regex.NFA.instDecidableEqNode.decEq Regex.NFA.Node.fail Regex.NFA.Node.fail = isTrue ⋯
- Regex.NFA.instDecidableEqNode.decEq Regex.NFA.Node.fail (Regex.NFA.Node.epsilon next) = isFalse ⋯
- Regex.NFA.instDecidableEqNode.decEq Regex.NFA.Node.fail (Regex.NFA.Node.anchor anchor next) = isFalse ⋯
- Regex.NFA.instDecidableEqNode.decEq Regex.NFA.Node.fail (Regex.NFA.Node.char c next) = isFalse ⋯
- Regex.NFA.instDecidableEqNode.decEq Regex.NFA.Node.fail (Regex.NFA.Node.split next₁ next₂) = isFalse ⋯
- Regex.NFA.instDecidableEqNode.decEq Regex.NFA.Node.fail (Regex.NFA.Node.save offset next) = isFalse ⋯
- Regex.NFA.instDecidableEqNode.decEq Regex.NFA.Node.fail (Regex.NFA.Node.sparse cs next) = isFalse ⋯
- Regex.NFA.instDecidableEqNode.decEq (Regex.NFA.Node.epsilon next) Regex.NFA.Node.done = isFalse ⋯
- Regex.NFA.instDecidableEqNode.decEq (Regex.NFA.Node.epsilon next) Regex.NFA.Node.fail = isFalse ⋯
- Regex.NFA.instDecidableEqNode.decEq (Regex.NFA.Node.epsilon a) (Regex.NFA.Node.epsilon b) = if h : a = b then h ▸ isTrue ⋯ else isFalse ⋯
- Regex.NFA.instDecidableEqNode.decEq (Regex.NFA.Node.epsilon next) (Regex.NFA.Node.anchor anchor next_1) = isFalse ⋯
- Regex.NFA.instDecidableEqNode.decEq (Regex.NFA.Node.epsilon next) (Regex.NFA.Node.char c next_1) = isFalse ⋯
- Regex.NFA.instDecidableEqNode.decEq (Regex.NFA.Node.epsilon next) (Regex.NFA.Node.split next₁ next₂) = isFalse ⋯
- Regex.NFA.instDecidableEqNode.decEq (Regex.NFA.Node.epsilon next) (Regex.NFA.Node.save offset next_1) = isFalse ⋯
- Regex.NFA.instDecidableEqNode.decEq (Regex.NFA.Node.epsilon next) (Regex.NFA.Node.sparse cs next_1) = isFalse ⋯
- Regex.NFA.instDecidableEqNode.decEq (Regex.NFA.Node.anchor anchor next) Regex.NFA.Node.done = isFalse ⋯
- Regex.NFA.instDecidableEqNode.decEq (Regex.NFA.Node.anchor anchor next) Regex.NFA.Node.fail = isFalse ⋯
- Regex.NFA.instDecidableEqNode.decEq (Regex.NFA.Node.anchor anchor next) (Regex.NFA.Node.epsilon next_1) = isFalse ⋯
- Regex.NFA.instDecidableEqNode.decEq (Regex.NFA.Node.anchor a a_1) (Regex.NFA.Node.anchor b b_1) = if h : a = b then h ▸ if h : a_1 = b_1 then h ▸ isTrue ⋯ else isFalse ⋯ else isFalse ⋯
- Regex.NFA.instDecidableEqNode.decEq (Regex.NFA.Node.anchor anchor next) (Regex.NFA.Node.char c next_1) = isFalse ⋯
- Regex.NFA.instDecidableEqNode.decEq (Regex.NFA.Node.anchor anchor next) (Regex.NFA.Node.split next₁ next₂) = isFalse ⋯
- Regex.NFA.instDecidableEqNode.decEq (Regex.NFA.Node.anchor anchor next) (Regex.NFA.Node.save offset next_1) = isFalse ⋯
- Regex.NFA.instDecidableEqNode.decEq (Regex.NFA.Node.anchor anchor next) (Regex.NFA.Node.sparse cs next_1) = isFalse ⋯
- Regex.NFA.instDecidableEqNode.decEq (Regex.NFA.Node.char c next) Regex.NFA.Node.done = isFalse ⋯
- Regex.NFA.instDecidableEqNode.decEq (Regex.NFA.Node.char c next) Regex.NFA.Node.fail = isFalse ⋯
- Regex.NFA.instDecidableEqNode.decEq (Regex.NFA.Node.char c next) (Regex.NFA.Node.epsilon next_1) = isFalse ⋯
- Regex.NFA.instDecidableEqNode.decEq (Regex.NFA.Node.char c next) (Regex.NFA.Node.anchor anchor next_1) = isFalse ⋯
- Regex.NFA.instDecidableEqNode.decEq (Regex.NFA.Node.char a a_1) (Regex.NFA.Node.char b b_1) = if h : a = b then h ▸ if h : a_1 = b_1 then h ▸ isTrue ⋯ else isFalse ⋯ else isFalse ⋯
- Regex.NFA.instDecidableEqNode.decEq (Regex.NFA.Node.char c next) (Regex.NFA.Node.split next₁ next₂) = isFalse ⋯
- Regex.NFA.instDecidableEqNode.decEq (Regex.NFA.Node.char c next) (Regex.NFA.Node.save offset next_1) = isFalse ⋯
- Regex.NFA.instDecidableEqNode.decEq (Regex.NFA.Node.char c next) (Regex.NFA.Node.sparse cs next_1) = isFalse ⋯
- Regex.NFA.instDecidableEqNode.decEq (Regex.NFA.Node.split next₁ next₂) Regex.NFA.Node.done = isFalse ⋯
- Regex.NFA.instDecidableEqNode.decEq (Regex.NFA.Node.split next₁ next₂) Regex.NFA.Node.fail = isFalse ⋯
- Regex.NFA.instDecidableEqNode.decEq (Regex.NFA.Node.split next₁ next₂) (Regex.NFA.Node.epsilon next) = isFalse ⋯
- Regex.NFA.instDecidableEqNode.decEq (Regex.NFA.Node.split next₁ next₂) (Regex.NFA.Node.anchor anchor next) = isFalse ⋯
- Regex.NFA.instDecidableEqNode.decEq (Regex.NFA.Node.split next₁ next₂) (Regex.NFA.Node.char c next) = isFalse ⋯
- Regex.NFA.instDecidableEqNode.decEq (Regex.NFA.Node.split a a_1) (Regex.NFA.Node.split b b_1) = if h : a = b then h ▸ if h : a_1 = b_1 then h ▸ isTrue ⋯ else isFalse ⋯ else isFalse ⋯
- Regex.NFA.instDecidableEqNode.decEq (Regex.NFA.Node.split next₁ next₂) (Regex.NFA.Node.save offset next) = isFalse ⋯
- Regex.NFA.instDecidableEqNode.decEq (Regex.NFA.Node.split next₁ next₂) (Regex.NFA.Node.sparse cs next) = isFalse ⋯
- Regex.NFA.instDecidableEqNode.decEq (Regex.NFA.Node.save offset next) Regex.NFA.Node.done = isFalse ⋯
- Regex.NFA.instDecidableEqNode.decEq (Regex.NFA.Node.save offset next) Regex.NFA.Node.fail = isFalse ⋯
- Regex.NFA.instDecidableEqNode.decEq (Regex.NFA.Node.save offset next) (Regex.NFA.Node.epsilon next_1) = isFalse ⋯
- Regex.NFA.instDecidableEqNode.decEq (Regex.NFA.Node.save offset next) (Regex.NFA.Node.anchor anchor next_1) = isFalse ⋯
- Regex.NFA.instDecidableEqNode.decEq (Regex.NFA.Node.save offset next) (Regex.NFA.Node.char c next_1) = isFalse ⋯
- Regex.NFA.instDecidableEqNode.decEq (Regex.NFA.Node.save offset next) (Regex.NFA.Node.split next₁ next₂) = isFalse ⋯
- Regex.NFA.instDecidableEqNode.decEq (Regex.NFA.Node.save a a_1) (Regex.NFA.Node.save b b_1) = if h : a = b then h ▸ if h : a_1 = b_1 then h ▸ isTrue ⋯ else isFalse ⋯ else isFalse ⋯
- Regex.NFA.instDecidableEqNode.decEq (Regex.NFA.Node.save offset next) (Regex.NFA.Node.sparse cs next_1) = isFalse ⋯
- Regex.NFA.instDecidableEqNode.decEq (Regex.NFA.Node.sparse cs next) Regex.NFA.Node.done = isFalse ⋯
- Regex.NFA.instDecidableEqNode.decEq (Regex.NFA.Node.sparse cs next) Regex.NFA.Node.fail = isFalse ⋯
- Regex.NFA.instDecidableEqNode.decEq (Regex.NFA.Node.sparse cs next) (Regex.NFA.Node.epsilon next_1) = isFalse ⋯
- Regex.NFA.instDecidableEqNode.decEq (Regex.NFA.Node.sparse cs next) (Regex.NFA.Node.anchor anchor next_1) = isFalse ⋯
- Regex.NFA.instDecidableEqNode.decEq (Regex.NFA.Node.sparse cs next) (Regex.NFA.Node.char c next_1) = isFalse ⋯
- Regex.NFA.instDecidableEqNode.decEq (Regex.NFA.Node.sparse cs next) (Regex.NFA.Node.split next₁ next₂) = isFalse ⋯
- Regex.NFA.instDecidableEqNode.decEq (Regex.NFA.Node.sparse cs next) (Regex.NFA.Node.save offset next_1) = isFalse ⋯
- Regex.NFA.instDecidableEqNode.decEq (Regex.NFA.Node.sparse a a_1) (Regex.NFA.Node.sparse b b_1) = if h : a = b then h ▸ if h : a_1 = b_1 then h ▸ isTrue ⋯ else isFalse ⋯ else isFalse ⋯
Instances For
Equations
Instances For
Equations
- Regex.NFA.instToExprNode = { toExpr := Regex.NFA.instToExprNode.toExpr✝, toTypeExpr := Lean.Expr.const `Regex.NFA.Node [] }
Equations
- Regex.NFA.Node.done.inBounds size = True
- Regex.NFA.Node.fail.inBounds size = True
- (Regex.NFA.Node.epsilon a).inBounds size = (a < size)
- (Regex.NFA.Node.anchor a a_1).inBounds size = (a_1 < size)
- (Regex.NFA.Node.char a a_1).inBounds size = (a_1 < size)
- (Regex.NFA.Node.split a a_1).inBounds size = (a < size ∧ a_1 < size)
- (Regex.NFA.Node.save a a_1).inBounds size = (a_1 < size)
- (Regex.NFA.Node.sparse a a_1).inBounds size = (a_1 < size)
Instances For
@[simp]
theorem
Regex.NFA.Node.inBounds.epsilon
{size next : Nat}
(h : next < size)
:
(Node.epsilon next).inBounds size
@[simp]
theorem
Regex.NFA.Node.inBounds.anchor
{size next : Nat}
{a : Data.Anchor}
(h : next < size)
:
(Node.anchor a next).inBounds size
@[simp]
theorem
Regex.NFA.Node.inBounds.split
{size next₁ next₂ : Nat}
(h₁ : next₁ < size)
(h₂ : next₂ < size)
:
(Node.split next₁ next₂).inBounds size
theorem
Regex.NFA.Node.lt_of_inBounds.epsilon
{size next : Nat}
(h : (Node.epsilon next).inBounds size)
:
theorem
Regex.NFA.Node.lt_of_inBounds.split
{size next₁ next₂ : Nat}
(h : (Node.split next₁ next₂).inBounds size)
:
theorem
Regex.NFA.Node.lt_of_inBounds.split_left
{size next₁ next₂ : Nat}
(h : (Node.split next₁ next₂).inBounds size)
:
theorem
Regex.NFA.Node.lt_of_inBounds.split_right
{size next₁ next₂ : Nat}
(h : (Node.split next₁ next₂).inBounds size)
:
Equations
- Regex.NFA.Node.decInBounds = isTrue trivial
- Regex.NFA.Node.decInBounds = isTrue trivial
- Regex.NFA.Node.decInBounds = inferInstanceAs (Decidable (next < size))
- Regex.NFA.Node.decInBounds = inferInstanceAs (Decidable (next < size))
- Regex.NFA.Node.decInBounds = inferInstanceAs (Decidable (next < size))
- Regex.NFA.Node.decInBounds = inferInstanceAs (Decidable (next < size))
- Regex.NFA.Node.decInBounds = inferInstanceAs (Decidable (next₁ < size ∧ next₂ < size))
- Regex.NFA.Node.decInBounds = inferInstanceAs (Decidable (next < size))
Equations
- Regex.instReprNFA = { reprPrec := Regex.instReprNFA.repr }
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- Regex.instInhabitedNFA = { default := Regex.instInhabitedNFA.default }
Instances For
Equations
- Regex.instToExprNFA = { toExpr := Regex.instToExprNFA.toExpr✝, toTypeExpr := Lean.Expr.const `Regex.NFA [] }
Equations
- Regex.NFA.done = { nodes := #[Regex.NFA.Node.done], start := 0 }
Instances For
Equations
- nfa.maxTag = Array.foldl (fun (accum : Nat) (node : Regex.NFA.Node) => match node with | Regex.NFA.Node.save tag next => accum.max tag | x => accum) 0 nfa.nodes
Instances For
Equations
- One or more equations did not get rendered due to their size.