mCRL2 icon indicating copy to clipboard operation
mCRL2 copied to clipboard

eliminate custom replace functions in linearise.cpp

Open jgroote opened this issue 11 years ago • 10 comments

Issue migrated from trac ticket # 1163

component: LPS Library | priority: major

2013-05-17 11:09:19: @wiegerw created the issue


In linearise.cpp there are many custom replace functions like substitute_assignmentlist, substitute_pCRLproc etc. Instead of this, the library functions in replace.h should be used.

jgroote avatar May 17 '13 11:05 jgroote

2013-05-18 14:12:59: anonymous changed status from new to closed

jgroote avatar May 18 '13 14:05 jgroote

2013-05-18 14:12:59: anonymous set resolution to fixed

jgroote avatar May 18 '13 14:05 jgroote

2013-05-18 14:12:59: anonymous commented


Replaced substitute_pCRLproc such that in now uses the standard substitution functions. Did not replace substitute_assignmentlist because the standard function does not take parameters of processes into account. In particular in a process defined as P(b:Bool)= a process_instance_assignment of the form P() to which a substituion sigma(b)=true is applied should yield P(b=true). This addresses bug #1163.

All occurrences of replace_free_variables that are not applied on variables or lists of variables are replaced by replace_variables_capture_avoiding. This addresses bugreport #1164.

Committed in release r11790.

jgroote avatar May 18 '13 14:05 jgroote

2013-05-20 09:14:53: @wiegerw changed status from closed to reopened

jgroote avatar May 20 '13 09:05 jgroote

2013-05-20 09:14:53: @wiegerw changed resolution from fixed to **

jgroote avatar May 20 '13 09:05 jgroote

2013-05-20 09:14:53: @wiegerw commented


Reopened this ticket, since the capture avoiding substitutions now handle missing assignments.

jgroote avatar May 20 '13 09:05 jgroote

2017-05-04 14:51:10: @wiegerw

jgroote avatar May 04 '17 14:05 jgroote

I just pushed a commit resolving this problem. fa5bd2517..da6bca8d4 master -> master All tests succeed.

jgroote avatar Jul 19 '18 14:07 jgroote

I should of course close this ticket also...

jgroote avatar Jul 19 '18 14:07 jgroote

The functions substitute_pCRL_proc and capture_avoiding_substitution behave differently. For instance after replacing the former by the latter lift3_init.mcrl2 and lift3_final.mcrl2 do not linearise correctly anymore. As yet it is unclear what the reason is.

jgroote avatar Jul 23 '18 19:07 jgroote