Skip to content

Commit

Permalink
Change replace/2 to operate an facts. Implement reachability check.
Browse files Browse the repository at this point in the history
  • Loading branch information
namcsi committed Jan 28, 2024
1 parent f2fb30c commit 78eae08
Show file tree
Hide file tree
Showing 23 changed files with 915 additions and 793 deletions.
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,7 @@ to reified facts or a reflected program via --input-format/-i and
--output-format/-o, respectively.

```shell
$ echo "ast_operation(delete(function(Id,a,Terms));add(function(Id,b,Terms))) :- function(Id,a,Terms)." > meta.lp
$ echo "ast(delete(function(Id,a,Terms));add(function(Id,b,Terms))) :- function(Id,a,Terms)." > meta.lp
$ echo "a." | renopro transform -m meta.lp
#program base.
b.
Expand Down
20 changes: 10 additions & 10 deletions examples/telingo/transformer.lp
Original file line number Diff line number Diff line change
Expand Up @@ -42,14 +42,14 @@ first(M,A,F) :- chain(M,A,F,O), not chain(M,A,_,F).


% ----- Prop
ast_operation(
ast(
add(variable(time_variable(term(T)),"T");
terms(T,N+1,variable(time_variable(term(T))))))
:- symbolic_atom(A,function(F)), function(F,Name,terms(T)),
not modal(Name), max_arg_index(T,N).

% ----- Prev
ast_operation(
ast(
delete(function(F,N,T1));
add(function(F,Name,terms(T2));
variable(time_variable(function(F)),"T");
Expand All @@ -60,7 +60,7 @@ ast_operation(
function(O,Name,terms(T2)), max_arg_index(T2,I), num(prev,A,Num).

% ----- Next
ast_operation(
ast(
delete(function(F,N,T1));
add(function(F,Name,terms(T2));
variable(time_variable(function(F)),"T");
Expand All @@ -71,7 +71,7 @@ ast_operation(
function(O,Name,terms(T2)), max_arg_index(T2,I), num(next,A,Num).

% ----- Time steps as new fact with interval 0..horizon
ast_operation(
ast(
add(number(time_number_0,0));
add(number(time_number_h,horizon));
add(interval(time_interval,number(time_number_0),number(time_number_h)));
Expand All @@ -81,11 +81,11 @@ ast_operation(
add(literal(time_literal,"pos",symbolic_atom(time_symbol)));
add(rule(time_rule,literal(time_literal),body_literals(time_body_literals)))).

ast_operation(add(statements(S,X+1,rule(time_rule))))
ast(add(statements(S,X+1,rule(time_rule))))
:- program("base",_,statements(S)), max_statement_index(S,X).

% Add time(T) in all rules
ast_operation(
ast(
add(variable(time_variable(R),"T"));
add(terms(time_terms_var(R),0,variable(time_variable(R))));
add(function(time_function_var(R),time,terms(time_terms_var(R))));
Expand All @@ -96,29 +96,29 @@ ast_operation(
:- rule(R,_,body_literals(B)), max_lit_index(B,MAX).

% Add initially(0).
ast_operation(
ast(
add(number(init_number,0));
add(terms(init_terms,0,number(init_number)));
add(function(init_function,initially,terms(init_terms)));
add(symbolic_atom(init_symbol,function(init_function)));
add(literal(init_literal,"pos",symbolic_atom(init_symbol)));
add(rule(init_rule,literal(init_literal),body_literals(init_body_literals)))).

ast_operation(add(statements(S,X+2,rule(init_rule))))
ast(add(statements(S,X+2,rule(init_rule))))
:- program("base",_,statements(S)), max_statement_index(S,X).



% Add finally(horizon).
ast_operation(
ast(
add(number(final_number,horizon));
add(terms(final_terms,0,number(final_number)));
add(function(final_function,finally,terms(final_terms)));
add(symbolic_atom(final_symbol,function(final_function)));
add(literal(final_literal,"pos",symbolic_atom(final_symbol)));
add(rule(final_rule,literal(final_literal),body_literals(final_body_literals)))).

ast_operation(add(statements(S,X+3,rule(final_rule))))
ast(add(statements(S,X+3,rule(final_rule))))
:- program("base",_,statements(S)), max_statement_index(S,X).


Loading

0 comments on commit 78eae08

Please sign in to comment.