{"size": 16683, "ext": "scrbl", "max_stars_repo_path": "Design/design.scrbl", "max_stars_repo_name": "2over12/ConstraintLang", "max_stars_repo_stars_event_min_datetime": "2018-11-11T15:49:36.000Z", "max_stars_repo_stars_event_max_datetime": "2018-11-13T17:46:01.000Z", "max_issues_repo_path": "Design/design.scrbl", "max_issues_repo_name": "2over12/ConstraintLang", "max_issues_repo_issues_event_min_datetime": null, "max_issues_repo_issues_event_max_datetime": null, "max_forks_repo_path": "Design/design.scrbl", "max_forks_repo_name": "2over12/ConstraintLang", "max_forks_repo_forks_event_min_datetime": null, "max_forks_repo_forks_event_max_datetime": null}
{"max_stars_count": 2, "max_issues_count": null, "max_forks_count": null, "avg_line_length": 28.0386554622, "max_line_length": 72, "alphanum_fraction": 0.514535755}
#reader(lib"read.ss""wxme")WXME0108 ## 
#|
   This file uses the GRacket editor format.
   Open this file in DrRacket version 6.10.1 or later to read it.

   Most likely, it was created by saving a program in DrRacket,
   and it probably contains a program with non-text elements
   (such as images or comment boxes).

            http://racket-lang.org/
|#
 33 7 #"wxtext\0"
3 1 6 #"wxtab\0"
1 1 8 #"wximage\0"
2 0 8 #"wxmedia\0"
4 1 34 #"(lib \"syntax-browser.ss\" \"mrlib\")\0"
1 0 36 #"(lib \"cache-image-snip.ss\" \"mrlib\")\0"
1 0 68
(
 #"((lib \"image-core.ss\" \"mrlib\") (lib \"image-core-wxme.rkt\" \"mr"
 #"lib\"))\0"
) 1 0 16 #"drscheme:number\0"
3 0 44 #"(lib \"number-snip.ss\" \"drscheme\" \"private\")\0"
1 0 36 #"(lib \"comment-snip.ss\" \"framework\")\0"
1 0 93
(
 #"((lib \"collapsed-snipclass.ss\" \"framework\") (lib \"collapsed-sni"
 #"pclass-wxme.ss\" \"framework\"))\0"
) 0 0 43 #"(lib \"collapsed-snipclass.ss\" \"framework\")\0"
0 0 19 #"drscheme:sexp-snip\0"
0 0 29 #"drscheme:bindings-snipclass%\0"
1 0 101
(
 #"((lib \"ellipsis-snip.rkt\" \"drracket\" \"private\") (lib \"ellipsi"
 #"s-snip-wxme.rkt\" \"drracket\" \"private\"))\0"
) 2 0 88
(
 #"((lib \"pict-snip.rkt\" \"drracket\" \"private\") (lib \"pict-snip.r"
 #"kt\" \"drracket\" \"private\"))\0"
) 0 0 55
#"((lib \"snip.rkt\" \"pict\") (lib \"snip-wxme.rkt\" \"pict\"))\0"
1 0 34 #"(lib \"bullet-snip.rkt\" \"browser\")\0"
0 0 25 #"(lib \"matrix.ss\" \"htdp\")\0"
1 0 22 #"drscheme:lambda-snip%\0"
1 0 29 #"drclickable-string-snipclass\0"
0 0 26 #"drracket:spacer-snipclass\0"
0 0 57
#"(lib \"hrule-snip.rkt\" \"macro-debugger\" \"syntax-browser\")\0"
1 0 26 #"drscheme:pict-value-snip%\0"
0 0 45 #"(lib \"image-snipr.ss\" \"slideshow\" \"private\")\0"
1 0 38 #"(lib \"pict-snipclass.ss\" \"slideshow\")\0"
2 0 55 #"(lib \"vertical-separator-snip.ss\" \"stepper\" \"private\")\0"
1 0 18 #"drscheme:xml-snip\0"
1 0 31 #"(lib \"xml-snipclass.ss\" \"xml\")\0"
1 0 21 #"drscheme:scheme-snip\0"
2 0 34 #"(lib \"scheme-snipclass.ss\" \"xml\")\0"
1 0 10 #"text-box%\0"
1 0 32 #"(lib \"text-snipclass.ss\" \"xml\")\0"
1 0 1 6 #"wxloc\0"
          0 0 55 0 1 #"\0"
0 75 1 #"\0"
0 12 90 -1 90 -1 3 -1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 255 255 255 1 -1 0 9
#"Standard\0"
0 75 10 #"Monospace\0"
0 12 90 -1 90 -1 3 -1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 255 255 255 1 -1 2 1
#"\0"
0 -1 1 #"\0"
1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 24
#"framework:default-color\0"
0 -1 1 #"\0"
1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 -1 -1 2 1
#"\0"
0 -1 1 #"\0"
1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 150 0 150 0 0 0 -1 -1 2 15
#"text:ports out\0"
0 -1 1 #"\0"
1 0 -1 -1 -1 93 -1 -1 0 1 0 0 0 0 0 0 0 1 1 1 150 0 150 0 0 0 -1 -1 2 1
#"\0"
0 -1 1 #"\0"
1.0 0 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 0 0 0 1.0 1.0 1.0 255 0 0 0 0 0 -1
-1 2 15 #"text:ports err\0"
0 -1 1 #"\0"
1 0 -1 -1 93 -1 -1 -1 0 1 0 0 0 0 0 0 0 1 1 1 255 0 0 0 0 0 -1 -1 2 1
#"\0"
0 -1 1 #"\0"
1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 0 0 175 0 0 0 -1 -1 2 17
#"text:ports value\0"
0 -1 1 #"\0"
1 0 -1 -1 -1 93 -1 -1 0 1 0 0 0 0 0 0 0 1 1 1 0 0 175 0 0 0 -1 -1 2 1
#"\0"
0 -1 1 #"\0"
1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1.0 1.0 1.0 34 139 34 0 0 0 -1
-1 2 27 #"Matching Parenthesis Style\0"
0 -1 1 #"\0"
1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1.0 1.0 1.0 34 139 34 0 0 0 -1
-1 2 1 #"\0"
0 -1 1 #"\0"
1 0 -1 -1 -1 93 -1 -1 0 1 0 0 0 0 0 0 0 1 1 1 38 38 128 0 0 0 -1 -1 2 37
#"framework:syntax-color:scheme:symbol\0"
0 -1 1 #"\0"
1 0 -1 -1 -1 93 -1 -1 0 1 0 0 0 0 0 0 0 1 1 1 38 38 128 0 0 0 -1 -1 2 38
#"framework:syntax-color:scheme:keyword\0"
0 -1 1 #"\0"
1 0 -1 -1 -1 93 -1 -1 0 1 0 0 0 0 0 0 0 1 1 1 38 38 128 0 0 0 -1 -1 2 1
#"\0"
0 -1 1 #"\0"
1 0 -1 -1 -1 93 -1 -1 0 1 0 0 0 0 0 0 0 1 1 1 194 116 31 0 0 0 -1 -1 2
38 #"framework:syntax-color:scheme:comment\0"
0 -1 1 #"\0"
1 0 -1 -1 -1 93 -1 -1 0 1 0 0 0 0 0 0 0 1 1 1 194 116 31 0 0 0 -1 -1 2 1
#"\0"
0 -1 1 #"\0"
1 0 -1 -1 -1 93 -1 -1 0 1 0 0 0 0 0 0 0 1 1 1 41 128 38 0 0 0 -1 -1 2 37
#"framework:syntax-color:scheme:string\0"
0 -1 1 #"\0"
1 0 -1 -1 -1 93 -1 -1 0 1 0 0 0 0 0 0 0 1 1 1 41 128 38 0 0 0 -1 -1 2 35
#"framework:syntax-color:scheme:text\0"
0 -1 1 #"\0"
1 0 -1 -1 -1 93 -1 -1 0 1 0 0 0 0 0 0 0 1 1 1 41 128 38 0 0 0 -1 -1 2 39
#"framework:syntax-color:scheme:constant\0"
0 -1 1 #"\0"
1 0 -1 -1 -1 93 -1 -1 0 1 0 0 0 0 0 0 0 1 1 1 41 128 38 0 0 0 -1 -1 2 1
#"\0"
0 -1 1 #"\0"
1 0 -1 -1 -1 93 -1 -1 0 1 0 0 0 0 0 0 0 1 1 1 132 60 36 0 0 0 -1 -1 2 49
#"framework:syntax-color:scheme:hash-colon-keyword\0"
0 -1 1 #"\0"
1 0 -1 -1 -1 93 -1 -1 0 1 0 0 0 0 0 0 0 1 1 1 132 60 36 0 0 0 -1 -1 2 42
#"framework:syntax-color:scheme:parenthesis\0"
0 -1 1 #"\0"
1 0 -1 -1 -1 93 -1 -1 0 1 0 0 0 0 0 0 0 1 1 1 132 60 36 0 0 0 -1 -1 2 1
#"\0"
0 -1 1 #"\0"
1 0 -1 -1 -1 93 -1 -1 0 1 0 0 0 0 0 0 0 1 1 1 255 0 0 0 0 0 -1 -1 2 36
#"framework:syntax-color:scheme:error\0"
0 -1 1 #"\0"
1 0 -1 -1 -1 93 -1 -1 0 1 0 0 0 0 0 0 0 1 1 1 255 0 0 0 0 0 -1 -1 2 1
#"\0"
0 -1 1 #"\0"
1 0 -1 -1 -1 93 -1 -1 0 1 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 -1 -1 2 36
#"framework:syntax-color:scheme:other\0"
0 -1 1 #"\0"
1 0 -1 -1 -1 93 -1 -1 0 1 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 -1 -1 2 16
#"Misspelled Text\0"
0 -1 1 #"\0"
1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 -1 -1 2 1
#"\0"
0 -1 1 #"\0"
1 0 -1 -1 -1 93 -1 -1 0 1 0 0 0 0 0 0 0 1 1 1 81 112 203 0 0 0 -1 -1 2
38 #"drracket:check-syntax:lexically-bound\0"
0 -1 1 #"\0"
1 0 -1 -1 -1 93 -1 -1 0 1 0 0 0 0 0 0 0 1 1 1 81 112 203 0 0 0 -1 -1 2 1
#"\0"
0 -1 1 #"\0"
1 0 -1 -1 -1 93 -1 -1 0 1 0 0 0 0 0 0 0 1 1 1 178 34 34 0 0 0 -1 -1 2 28
#"drracket:check-syntax:set!d\0"
0 -1 1 #"\0"
1 0 -1 -1 -1 93 -1 -1 0 1 0 0 0 0 0 0 0 1 1 1 178 34 34 0 0 0 -1 -1 2 37
#"drracket:check-syntax:unused-require\0"
0 -1 1 #"\0"
1 0 -1 -1 -1 93 -1 -1 0 1 0 0 0 0 0 0 0 1 1 1 255 0 0 0 0 0 -1 -1 2 36
#"drracket:check-syntax:free-variable\0"
0 -1 1 #"\0"
1 0 -1 -1 -1 93 -1 -1 0 1 0 0 0 0 0 0 0 1 1 1 255 0 0 0 0 0 -1 -1 2 1
#"\0"
0 -1 1 #"\0"
1 0 -1 -1 -1 93 -1 -1 0 1 0 0 0 0 0 0 0 1 1 1 68 0 203 0 0 0 -1 -1 2 31
#"drracket:check-syntax:imported\0"
0 -1 1 #"\0"
1 0 -1 -1 -1 93 -1 -1 0 1 0 0 0 0 0 0 0 1 1 1 68 0 203 0 0 0 -1 -1 2 47
#"drracket:check-syntax:my-obligation-style-pref\0"
0 -1 1 #"\0"
1 0 -1 -1 -1 93 -1 -1 0 1 0 0 0 0 0 0 0 1 1 1 178 34 34 0 0 0 -1 -1 2 1
#"\0"
0 -1 1 #"\0"
1 0 -1 -1 -1 93 -1 -1 0 1 0 0 0 0 0 0 0 1 1 1 0 116 0 0 0 0 -1 -1 2 50
#"drracket:check-syntax:their-obligation-style-pref\0"
0 -1 1 #"\0"
1 0 -1 -1 -1 93 -1 -1 0 1 0 0 0 0 0 0 0 1 1 1 0 116 0 0 0 0 -1 -1 2 48
#"drracket:check-syntax:unk-obligation-style-pref\0"
0 -1 1 #"\0"
1 0 -1 -1 -1 93 -1 -1 0 1 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 -1 -1 2 1
#"\0"
0 -1 1 #"\0"
1 0 -1 -1 -1 93 -1 -1 0 1 0 0 0 0 0 0 0 1 1 1 139 142 28 0 0 0 -1 -1 2
49 #"drracket:check-syntax:both-obligation-style-pref\0"
0 -1 1 #"\0"
1 0 -1 -1 -1 93 -1 -1 0 1 0 0 0 0 0 0 0 1 1 1 139 142 28 0 0 0 -1 -1 2
26 #"plt:htdp:test-coverage-on\0"
0 -1 1 #"\0"
1 0 -1 -1 -1 93 -1 -1 0 1 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 -1 -1 2 1
#"\0"
0 -1 1 #"\0"
1 0 -1 -1 -1 93 -1 -1 0 1 0 0 0 1 0 0 0 0 0 0 255 165 0 0 0 0 -1 -1 2 27
#"plt:htdp:test-coverage-off\0"
0 -1 1 #"\0"
1 0 -1 -1 -1 93 -1 -1 0 1 0 0 0 1 0 0 0 0 0 0 255 165 0 0 0 0 -1 -1 4 1
#"\0"
0 70 1 #"\0"
1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
-1 -1 4 4 #"XML\0"
0 70 1 #"\0"
1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
-1 -1 2 37 #"plt:module-language:test-coverage-on\0"
0 -1 1 #"\0"
1 0 -1 -1 -1 93 -1 -1 0 1 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 -1 -1 2 38
#"plt:module-language:test-coverage-off\0"
0 -1 1 #"\0"
1 0 -1 -1 -1 93 -1 -1 0 1 0 0 0 1 0 0 0 0 0 0 255 165 0 0 0 0 -1 -1 4 1
#"\0"
0 71 1 #"\0"
1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
-1 -1 4 1 #"\0"
0 -1 1 #"\0"
1.0 0 -1 -1 -1 -1 -1 -1 1 0 0 0 0 0 0 0 0 1.0 1.0 1.0 0 0 255 0 0 0 -1
-1 4 1 #"\0"
0 71 1 #"\0"
1.0 0 -1 -1 -1 -1 -1 -1 1 0 0 0 0 0 0 0 0 1.0 1.0 1.0 0 0 255 0 0 0 -1
-1 4 1 #"\0"
0 71 1 #"\0"
1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1.0 1.0 1.0 0 100 0 0 0 0 -1
-1           0 357 0 28 3 22 #"#lang scribble/sigplan"
0 0 24 29 1 #"\n"
0 0 24 3 2 #"@("
0 0 15 3 7 #"require"
0 0 24 3 1 #" "
0 0 19 3 13 #"\"utility.rkt\""
0 0 24 3 1 #")"
0 0 24 29 1 #"\n"
0 0 24 3 1 #"@"
0 0 14 3 5 #"title"
0 0 24 3 1 #"{"
0 0 20 3 6 #"Design"
0 0 24 3 1 #"}"
0 0 24 29 1 #"\n"
0 0 24 29 1 #"\n"
0 0 24 3 1 #"@"
0 0 14 3 7 #"section"
0 0 24 3 1 #"{"
0 0 20 3 3 #"SBL"
0 0 24 3 1 #"}"
0 0 24 29 1 #"\n"
0 0 24 3 1 #"@"
0 0 14 3 10 #"subsection"
0 0 24 3 1 #"{"
0 0 20 3 5 #"Vocab"
0 0 24 3 1 #"}"
0 0 24 29 1 #"\n"
0 0 24 3 1 #"@"
0 0 14 3 8 #"itemlist"
0 0 24 3 3 #"[@("
0 0 14 3 9 #"list-item"
0 0 24 3 1 #" "
0 0 19 3 17 #"\"define-symbolic\""
0 0 24 3 1 #" "
0 0 19 3 44 #"\"for defining symbolic functions and values\""
0 0 24 3 1 #")"
0 0 24 29 1 #"\n"
0 0 24 3 12 #"          @("
0 0 14 3 9 #"list-item"
0 0 24 3 1 #" "
0 0 19 3 10 #"\"variable\""
0 0 24 3 1 #" "
0 0 19 3 24 #"\"a name that is defined\""
0 0 24 3 1 #")"
0 0 24 29 1 #"\n"
0 0 24 3 12 #"          @("
0 0 14 3 9 #"list-item"
0 0 24 3 1 #" "
0 0 19 3 11 #"\"get-input\""
0 0 24 3 1 #" "
0 0 19 3 53 #"\"primitive function that gets path between functions\""
0 0 24 3 1 #")"
0 0 24 29 1 #"\n"
0 0 24 3 12 #"          @("
0 0 14 3 9 #"list-item"
0 0 24 3 1 #" "
0 0 19 3 11 #"\"symb-expr\""
0 0 24 3 1 #" "
0 0 19 3 64
#"\"an expr that evaluates to either a symbol, list of constrained,"
0 0 19 29 1 #"\n"
0 0 19 3 30 #" inputs, or a concrete number\""
0 0 24 3 1 #")"
0 0 24 29 1 #"\n"
0 0 24 3 12 #"          @("
0 0 14 3 9 #"list-item"
0 0 24 3 1 #" "
0 0 19 3 17 #"\"define-callback\""
0 0 24 3 1 #" "
0 0 19 3 52 #"\"adds a callback on application of symbolic funtion\""
0 0 24 3 1 #")"
0 0 24 29 1 #"\n"
0 0 24 3 12 #"          @("
0 0 14 3 9 #"list-item"
0 0 24 3 1 #" "
0 0 19 3 11 #"\"symb-expr\""
0 0 24 3 1 #" "
0 0 19 3 52 #"\"adds a callback on application of symbolic funtion\""
0 0 24 3 1 #")"
0 0 24 29 1 #"\n"
0 0 24 3 12 #"          @("
0 0 14 3 9 #"list-item"
0 0 24 3 1 #" "
0 0 19 3 13 #"\"racket-expr\""
0 0 24 3 1 #" "
0 0 19 3 13 #"\"racket-expr\""
0 0 24 3 1 #")"
0 0 24 29 1 #"\n"
0 0 24 3 12 #"          @("
0 0 14 3 9 #"list-item"
0 0 24 3 1 #" "
0 0 19 3 11 #"\"bsl--expr\""
0 0 24 29 1 #"\n"
0 0 24 3 22 #"                      "
0 0 19 3 70
(
 #"\"an expression that only uses the grammar vocab and semantics of BS"
 #"L-\""
) 0 0 24 3 2 #")]"
0 0 24 29 1 #"\n"
0 0 24 29 1 #"\n"
0 0 24 3 1 #"@"
0 0 14 3 10 #"subsection"
0 0 24 3 1 #"{"
0 0 20 3 7 #"Grammar"
0 0 24 3 1 #"}"
0 0 24 29 1 #"\n"
0 0 24 3 1 #"@"
0 0 14 3 8 #"itemlist"
0 0 24 3 2 #"[@"
0 0 14 3 4 #"item"
0 0 24 3 1 #"{"
0 0 20 3 27 #"(define-symbolic symb-expr)"
0 0 24 3 1 #"}"
0 0 24 29 1 #"\n"
0 0 24 3 11 #"          @"
0 0 14 3 4 #"item"
0 0 24 3 1 #"{"
0 0 20 3 42 #"(define-symbolic (variable ...) bsl--expr)"
0 0 24 3 2 #"} "
0 0 24 29 1 #"\n"
0 0 24 3 11 #"          @"
0 0 14 3 4 #"item"
0 0 24 3 1 #"{"
0 0 20 3 29 #"(get-path variable symb-expr)"
0 0 24 3 1 #"}"
0 0 24 29 1 #"\n"
0 0 24 3 11 #"          @"
0 0 14 3 4 #"item"
0 0 24 3 1 #"{"
0 0 20 3 26 #"(define-callback variable)"
0 0 24 3 1 #"}"
0 0 24 29 1 #"\n"
0 0 24 3 11 #"          @"
0 0 14 3 4 #"item"
0 0 24 3 1 #"{"
0 0 20 3 30 #"(get-input variable symb-expr)"
0 0 24 3 1 #"}"
0 0 24 29 1 #"\n"
0 0 24 3 11 #"          @"
0 0 14 3 4 #"item"
0 0 24 3 1 #"{"
0 0 20 3 40 #"(variable (symb-expr U racket-expr) ...)"
0 0 24 3 2 #"}]"
0 0 24 29 1 #"\n"
0 0 24 29 1 #"\n"
0 0 24 3 1 #"@"
0 0 14 3 10 #"subsection"
0 0 24 3 1 #"{"
0 0 20 3 9 #"Semantics"
0 0 24 3 1 #"}"
0 0 24 29 1 #"\n"
0 0 24 3 1 #"@"
0 0 14 3 8 #"itemlist"
0 0 24 3 3 #"[@("
0 0 14 3 9 #"list-item"
0 0 24 3 1 #" "
0 0 19 3 17 #"\"define-callback\""
0 0 24 3 1 #" "
0 0 19 3 61
#"\"adds a callback for each application of a symbolic function\""
0 0 24 3 1 #")"
0 0 24 29 1 #"\n"
0 0 24 3 12 #"          @("
0 0 14 3 9 #"list-item"
0 0 24 3 1 #" "
0 0 19 3 11 #"\"get-input\""
0 0 24 3 1 #" "
0 0 19 3 60
#"\"produces the set of constraints nesscary to reach the given"
0 0 19 29 1 #"\n"
0 0 19 3 22 #"symbolic application.\""
0 0 24 3 1 #")"
0 0 24 29 1 #"\n"
0 0 24 3 12 #"          @("
0 0 14 3 9 #"list-item"
0 0 24 3 1 #" "
0 0 19 3 21 #"\"(variable expr ...)\""
0 0 24 3 1 #" "
0 0 19 3 53 #"\"applies the function to the given expressions if the"
0 0 19 29 1 #"\n"
0 0 19 3 42 #"variable is an application of a symbolic f"
0 0 19 3 59
#"unction all expressions must evaluate to either a symbol or"
0 0 19 29 1 #"\n"
0 0 19 3 7 #"number\""
0 0 24 3 2 #")]"
0 0 24 29 1 #"\n"
0 0 24 29 1 #"\n"
0 0 24 29 1 #"\n"
0 0 24 3 1 #"@"
0 0 14 3 10 #"subsection"
0 0 24 3 1 #"{"
0 0 20 3 7 #"Scoping"
0 0 24 3 1 #"}"
0 0 24 29 1 #"\n"
0 0 24 3 1 #"@"
0 0 14 3 8 #"itemlist"
0 0 24 3 2 #"[@"
0 0 14 3 4 #"item"
0 0 24 3 1 #"{"
0 0 20 3 85
(
 #"(define-symbolic variable expr) binds variable for all below top lev"
 #"el forms that are"
) 0 0 24 29 1 #"\n"
0 0 24 3 11 #"           "
0 0 20 3 8 #"symbolic"
0 0 24 3 1 #"}"
0 0 24 29 1 #"\n"
0 0 24 3 11 #"          @"
0 0 14 3 4 #"item"
0 0 24 3 1 #"{"
0 0 20 3 82
(
 #"(define-symbolic (variable variable ...) bsl-expr) binds the first v"
 #"ariable in all"
) 0 0 24 29 1 #"\n"
0 0 24 3 11 #"           "
0 0 20 3 57 #"top level forms and the rest of the variables in bsl-expr"
0 0 24 3 2 #"}]"
0 0 24 29 1 #"\n"
0 0 24 29 1 #"\n"
0 0 24 3 1 #"@"
0 0 14 3 7 #"section"
0 0 24 3 1 #"{"
0 0 20 3 4 #"BSL-"
0 0 24 3 1 #"}"
0 0 24 29 1 #"\n"
0 0 20 3 31 #"The design of  BSL- expressions"
0 0 24 29 1 #"\n"
0 0 24 3 1 #"@"
0 0 14 3 10 #"subsection"
0 0 24 3 1 #"{"
0 0 20 3 5 #"Vocab"
0 0 24 3 1 #"}"
0 0 24 29 1 #"\n"
0 0 24 3 1 #"@"
0 0 14 3 8 #"itemlist"
0 0 24 3 3 #"[@("
0 0 14 3 9 #"list-item"
0 0 24 3 1 #" "
0 0 19 3 5 #"\"if0\""
0 0 24 3 1 #" "
0 0 19 3 55 #"\"branches to a then and else clause based on the input\""
0 0 24 3 1 #")"
0 0 24 29 1 #"\n"
0 0 24 3 12 #"          @("
0 0 14 3 9 #"list-item"
0 0 24 3 1 #" "
0 0 19 3 5 #"\"or0\""
0 0 24 3 1 #" "
0 0 19 3 31 #"\"combines two numbers in an or\""
0 0 24 3 1 #")"
0 0 24 29 1 #"\n"
0 0 24 3 12 #"          @("
0 0 14 3 9 #"list-item"
0 0 24 3 1 #" "
0 0 19 3 6 #"\"and0\""
0 0 24 3 1 #" "
0 0 19 3 32 #"\"combines two numbers in an and\""
0 0 24 3 1 #")"
0 0 24 29 1 #"\n"
0 0 24 3 12 #"          @("
0 0 14 3 9 #"list-item"
0 0 24 3 1 #" "
0 0 19 3 3 #"\"<\""
0 0 24 3 1 #" "
0 0 19 3 46 #"\"compares two numbers determines if less-than\""
0 0 24 3 1 #")"
0 0 24 29 1 #"\n"
0 0 24 3 12 #"          @("
0 0 14 3 9 #"list-item"
0 0 24 3 1 #" "
0 0 19 3 3 #"\">\""
0 0 24 3 1 #" "
0 0 19 3 49 #"\"compares two numbers determines if greater than\""
0 0 24 3 1 #")"
0 0 24 29 1 #"\n"
0 0 24 3 12 #"          @("
0 0 14 3 9 #"list-item"
0 0 24 3 1 #" "
0 0 19 3 4 #"\"<=\""
0 0 24 3 1 #" "
0 0 19 3 58
#"\"compares two numbers determines if less-than or equal to\""
0 0 24 3 1 #")"
0 0 24 29 1 #"\n"
0 0 24 3 12 #"          @("
0 0 14 3 9 #"list-item"
0 0 24 3 1 #" "
0 0 19 3 4 #"\">=\""
0 0 24 3 1 #" "
0 0 19 3 61
#"\"compares two numbers determines if greater than or equal to\""
0 0 24 3 1 #")"
0 0 24 29 1 #"\n"
0 0 24 3 12 #"          @("
0 0 14 3 9 #"list-item"
0 0 24 3 1 #" "
0 0 19 3 3 #"\"+\""
0 0 24 3 1 #" "
0 0 19 3 26 #"\"adds two or more numbers\""
0 0 24 3 1 #")"
0 0 24 29 1 #"\n"
0 0 24 3 12 #"          @("
0 0 14 3 9 #"list-item"
0 0 24 3 1 #" "
0 0 19 3 3 #"\"-\""
0 0 24 3 1 #" "
0 0 19 3 32 #"\"subtracts two ore more numbers\""
0 0 24 3 1 #")"
0 0 24 29 1 #"\n"
0 0 24 3 12 #"          @("
0 0 14 3 9 #"list-item"
0 0 24 3 1 #" "
0 0 19 3 3 #"\"/\""
0 0 24 3 1 #" "
0 0 19 3 21 #"\"divides two numbers\""
0 0 24 3 1 #")"
0 0 24 29 1 #"\n"
0 0 24 3 12 #"          @("
0 0 14 3 9 #"list-item"
0 0 24 3 1 #" "
0 0 19 3 3 #"\"*\""
0 0 24 3 1 #" "
0 0 19 3 24 #"\"multiplies two numbers\""
0 0 24 3 2 #")]"
0 0 24 29 1 #"\n"
0 0 24 3 1 #"@"
0 0 14 3 10 #"subsection"
0 0 24 3 1 #"{"
0 0 20 3 7 #"Grammar"
0 0 24 3 1 #"}"
0 0 24 29 1 #"\n"
0 0 24 3 1 #"@"
0 0 14 3 10 #"subsection"
0 0 24 3 1 #"{"
0 0 20 3 9 #"Semantics"
0 0 24 3 1 #"}"
0 0 24 29 1 #"\n"
0 0 24 3 1 #"@"
0 0 14 3 10 #"subsection"
0 0 24 3 1 #"{"
0 0 20 3 7 #"Scoping"
0 0 24 3 1 #"}"
0 0 24 29 1 #"\n"
0 0 24 29 1 #"\n"
0 0 24 29 1 #"\n"
0 0 24 3 2 #"@("
0 0 15 3 6 #"define"
0 0 24 3 2 #" ("
0 0 14 3 9 #"list-item"
0 0 24 3 1 #" "
0 0 14 3 4 #"name"
0 0 24 3 1 #" "
0 0 15 3 3 #"def"
0 0 24 3 3 #") @"
0 0 14 3 4 #"item"
0 0 24 3 2 #"{@"
0 0 14 3 6 #"italic"
0 0 24 3 3 #"{@("
0 0 14 3 13 #"string-append"
0 0 24 3 1 #" "
0 0 14 3 4 #"name"
0 0 24 3 1 #" "
0 0 19 3 4 #"\": \""
0 0 24 3 2 #")}"
0 0 20 3 1 #" "
0 0 24 3 1 #"@"
0 0 15 3 3 #"def"
0 0 24 3 2 #"})"
0           0
