Commit 3e74ed80 authored by Andrei Paskevich's avatar Andrei Paskevich
Browse files

check recursive definitions for structural descent

Add "eliminate_definition" before "eliminate_algebraic" in gappa.drv
"eliminate_recursion" or "eliminate_definition" should be always
applied before "eliminate_algebraic".
parent c1d9146b
...@@ -13,6 +13,7 @@ transformation "simplify_recursive_definition" ...@@ -13,6 +13,7 @@ transformation "simplify_recursive_definition"
transformation "inline_trivial" transformation "inline_trivial"
transformation "eliminate_builtin" transformation "eliminate_builtin"
transformation "inline_all" transformation "inline_all"
transformation "eliminate_definition"
transformation "eliminate_inductive" transformation "eliminate_inductive"
transformation "eliminate_algebraic" transformation "eliminate_algebraic"
transformation "eliminate_if" transformation "eliminate_if"
......
...@@ -427,7 +427,7 @@ let create_logic_decl ldl = ...@@ -427,7 +427,7 @@ let create_logic_decl ldl =
syms, news_id news ls.ls_name syms, news_id news ls.ls_name
in in
let (syms,news) = List.fold_left check_decl (Sid.empty,Sid.empty) ldl in let (syms,news) = List.fold_left check_decl (Sid.empty,Sid.empty) ldl in
(* ignore (check_termination ldl); *) ignore (check_termination ldl);
mk_decl (Dlogic ldl) syms news mk_decl (Dlogic ldl) syms news
exception InvalidIndDecl of lsymbol * prsymbol exception InvalidIndDecl of lsymbol * prsymbol
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment