[sledge] Add missing case to sequence theory solver

Summary: Solving equations such as `eⁿ = a⌢b` was missing.

Reviewed By: jvillard

Differential Revision: D24920761

fbshipit-source-id: 09ba30c8c
master
Josh Berdine 4 years ago committed by Facebook GitHub Bot
parent 1d974c0587
commit a8feaa4262

@ -305,6 +305,9 @@ and solve_ ?f d e s =
(* ⟨n,a⟩ = ⟨m,b⟩ ==> n = m ∧ a = β *) (* ⟨n,a⟩ = ⟨m,b⟩ ==> n = m ∧ a = β *)
| Some (Sized {siz= n; seq= a}, Sized {siz= m; seq= b}) -> | Some (Sized {siz= n; seq= a}, Sized {siz= m; seq= b}) ->
s |> solve_ ?f n m >>= solve_ ?f a b s |> solve_ ?f n m >>= solve_ ?f a b
(* ⟨n,e^⟩ = α₀^…^αᵥ ==> *)
| Some ((Sized {siz= n; seq= Splat _} as b), Concat a0V) ->
solve_concat ?f a0V b n s
(* ⟨n,a⟩ = β ==> n = |β| ∧ a = β *) (* ⟨n,a⟩ = β ==> n = |β| ∧ a = β *)
| Some (Sized {siz= n; seq= a}, b) -> | Some (Sized {siz= n; seq= a}, b) ->
( match Trm.seq_size b with ( match Trm.seq_size b with

Loading…
Cancel
Save