l is a simple Rosette-based synthesizer for L-system grammars. Given a specification of states, the production rule set for a valid L-system will be generated, essentially providing a solution to the "Inverse L-system" problem.
(define state-1 (list "a" "b" "c"))
(define state-2 (list "a" "b" "a" "c" "a"))
(define state-3 (list "a" "b" "a" "a" "b" "c" "a" "a" "b"))
; find production rule-set
(define production-rule-set (find-production-rule-set (list state-1 state-2 state-3)))
; print production rule-set
(print-production-rule-set production-rule-set)
The source code is in main.rkt
.