Abstract
Constraint Handling Rules (CHR) is a general-purpose rule-based programming language. This paper studies the forward and backward propagation of rules, and explores the combination of both execution strategies. Forward propagation transforms input to output, while backward propagation uncovers input from output. This work includes a source-to-source transformation capable of implementing a backward propagation of the rules. Furthermore with the addition of annotating trigger constraints, CHR programs can be executed in a strictly-forward, strictly-backward or combined interleaved quasi-simultaneous manner. A programmer should only write one program and then the annotated transformation empowers the multiple execution strategies. The proposed work is useful for automatic implementation of bidirectional search for any search space through the combined execution strategies. Moreover, it is advantageous for reversible bijective algorithms (such as lossless compression/decompression), requiring only one algorithm direction to be implemented.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
Abdennadher, S., Christiansen, H.: An experimental CLP platform for integrity constraints and abduction. In: Larsen, H.L., Andreasen, T., Christiansen, H., Kacprzyk, J., Zadrożny, S. (eds.) FQAS 2000. ASC, vol. 1, pp. 141–152. Springer, Heidelberg (2000)
Abdennadher, S., Schütz, H.: CHR \(^\lor \): A flexible query language. In: Andreasen, T., Christiansen, H., Larsen, H.L. (eds.) FQAS 1998. LNCS (LNAI), vol. 1495, pp. 1–14. Springer, Heidelberg (1998)
Console, L., Dupr, D.T., Torasso, P.: On the relationship between abduction and deduction. J. Log. Comput. 1(5), 661–690 (1991)
De Koninck, L., Schrijvers, T., Demoen, B.: Search strategies in CHR(Prolog). In: Schrijvers, T., Frühwirth, Th. (eds.) Proceedings of the 3rd Workshop on Constraint Handling Rule, pp. 109–124. K.U.Leuven, Department of Computer Science, Technical report CW 452 (2006)
Duck, G.J., Stuckey, P.J., de la Banda, M.G., Holzbaur, C.: The refined operational semantics of constraint handling rules. In: Demoen, B., Lifschitz, V. (eds.) ICLP 2004. LNCS, vol. 3132, pp. 90–104. Springer, Heidelberg (2004)
Elsawy, A., Zaki, A., Abdennadher, S.: Exhaustive execution of chr through source-to-source transformation. In: Proietti, M., Seki, H. (eds.) LOPSTR 2014. LNCS, vol. 8981, pp. 59–73. Springer, Heidelberg (2015)
Frühwirth, T.: Constraint Handling Rules. Cambridge University Press (2009)
Frühwirth, T., Holzbaur, C.: Source-to-source transformation for a class of expressive rules. In: Buccafurri, F. (ed.) Joint Conference on Declarative Programming APPIA-GULP-PRODE 2003 (AGP 2003), pp. 386–397 (2003)
Frühwirth, T., Raiser, F. (eds.): Constraint Handling Rules: Compilation, Execution, and Analysis. Books on Demand, March 2011
Haemmerlé, R.: On combining backward and forward chaining in constraint logic programming. In: Proceedings of 16th International Symposium on Principles and Practice of Declarative Programming (PPDP 2014) (2014)
Hou, C., Vulov, G., Quinlan, D., Jefferson, D., Fujimoto, R., Vuduc, R.: A new method for program inversion. In: O’Boyle, M. (ed.) CC 2012. LNCS, vol. 7210, pp. 81–100. Springer, Heidelberg (2012)
Mayer, M.C., Pirri, F.: Abduction is not deduction-in-reverse. Logic Journal of the IGPL 4(1), 95–108 (1996)
Peirce, C.S.: Collected Papers of Charles Sanders Peirce, vol. 2. Harvard University Press (1931)
Pohl, I.S.: Bi-directional search. Machine Intelligence 6, 127–140 (1971)
Sneyers, J., Van Weert, P., Schrijvers, T., De Koninck, L.: As time goes by: constraint handling rules – a survey of CHR research between 1998 and 2007. In: Theory and Practice of Logic Programming, pp. 1–47 (2010)
Yokoyama, T.: Reversible computation and reversible programming languages. Electronic Notes in Theoretical Computer Science 253(6), 71–81 (2009). Proceedings of the Workshop on Reversible Computation (RC 2009)
Zaki, A., Frühwirth, T.W., Abdennadher, S.: Towards inverse execution of constraint handling rules. In: Theory and Practice of Logic Programming, 13(4-5-Online-Supplement) (2013)
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2015 Springer International Publishing Switzerland
About this paper
Cite this paper
Zaki, A., Abdennadher, S., Frühwirth, T. (2015). Combining Forward and Backward Propagation. In: Lutz, C., Ranise, S. (eds) Frontiers of Combining Systems. FroCoS 2015. Lecture Notes in Computer Science(), vol 9322. Springer, Cham. https://doi.org/10.1007/978-3-319-24246-0_19
Download citation
DOI: https://doi.org/10.1007/978-3-319-24246-0_19
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-319-24245-3
Online ISBN: 978-3-319-24246-0
eBook Packages: Computer ScienceComputer Science (R0)