CurryInfo: rewriting-3.0.0 / Rewriting.Narrowing.solveEq

definition:
solveEq :: Eq f => NOptions f -> NStrategy f -> TRS f -> Term f -> [Subst f]
solveEq _    _ _   (TermVar _)       = []
solveEq opts s trs t@(TermCons _ ts)
  = case ts of
      [_, _] -> let vs = tVars t
                    v = maybe 0 (+ 1) (maxVarInTerm t)
                 in map ((flip restrictSubst) vs)
                        (solveEq' opts v emptySubst s trs t)
      _      -> []
demand:
argument 5
deterministic:
deterministic operation
documentation:
--- Solves a term equation with the given strategy, the given term rewriting
--- system and the given options. The term has to be of the form
--- `TermCons c [l, r]` with `c` being a constructor like `=`. The term `l`
--- and the term `r` are the left-hand side and the right-hand side of the
--- term equation.
failfree:
<FAILING>
indeterministic:
referentially transparent operation
infix:
no fixity defined
iotype:
{(_,_,_,_,{TermVar}) |-> {[]} || (_,_,_,_,{TermCons}) |-> {:,[]}}
name:
solveEq
precedence:
no precedence defined
result-values:
{:,[]}
signature:
Prelude.Eq a => NOptions a -> ([(Rewriting.Term.Term a, Rewriting.Term.Term a)]
-> Rewriting.Term.Term a
-> [([Prelude.Int], (Rewriting.Term.Term a, Rewriting.Term.Term a), Data.Map.Map Prelude.Int (Rewriting.Term.Term a))])
-> [(Rewriting.Term.Term a, Rewriting.Term.Term a)] -> Rewriting.Term.Term a
-> [Data.Map.Map Prelude.Int (Rewriting.Term.Term a)]
solution-complete:
operation might suspend on free variables
terminating:
possibly non-terminating
totally-defined:
possibly non-reducible on same data term