crossword is_word[ is_word[ is_word[ is_word[ is_word[ figure crossword show( crossword csp("crossword "{one_acrossone_downtwo_downthree_acrossfour_across}[constraint([one_across,one_down]meet_at( , ))constraint([one_across,two_down]meet_at( , ))constraint([three_across,two_down]meet_at( , ))constraint([three_across,one_down]meet_at( , ))constraint([four_across,two_down]meet_at( , ))]in an alternative representation of crossword (the "dualrepresentation)the variables represent lettersand the constraints are that adjacent sequences of letters form words this is shown in figure cspexamples py -(continued words {'ant''big''bus''car''has','book''buys''hold''lane''year''ginger''search''symbol''syntax' def is_word(*letterswords=words)"""is true if the letters concatenated form word in words""return "join(lettersin words letters {" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "version june