Skip to content

Commit fca9f19

Browse files
Fix typos, links in docs (#94)
1 parent f7149bf commit fca9f19

File tree

8 files changed

+21
-21
lines changed

8 files changed

+21
-21
lines changed

docs/eval_modes/options.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,11 +8,11 @@ nav_order: 1
88
# Options and System Properties
99

1010
Formulog evaluation is controlled by options and system properties.
11-
For example, to interpret the test program with SMT debug information (the `debugSmt` property) and 2
12-
threads (the `-j 2` option), use
11+
For example, to interpret the test program with SMT logging and 2
12+
threads, use the `debugSmt` property and `-j 2` option:
1313

1414
```
15-
java -DdebugSmt -jar formulog.jar greeting.flg -j 2
15+
java -DdebugSmt -jar formulog.jar example/greeting.flg -j 2
1616
```
1717

1818
## Options

docs/eval_modes/smt.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ SMT solving).
2323
- `push-pop`: try to use incremental SMT solving via the `push` and `pop` SMT
2424
commands. This can work well when query `y` extends query `x`; e.g., `y = c ::
2525
x`, where `c` is an additional conjunct; this situation most commonly occurs
26-
when using [eager evaluation]({{ site.baseurl }}{% link eval_modes/eager.md %}).
26+
when using [eager evaluation]({{ site.base_url }}{% link eval_modes/eager.md %}).
2727
- `check-sat-assuming`: try to use incremental SMT solving via the
2828
`check-sat-assuming` SMT command. This caches conjuncts in the SMT solver in a
2929
way such that they can be enabled or disabled per SMT query, and works well if

docs/lang_ref/goal_directed_eval.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ predicates that are "invoked" from the functional fragment of Formulog.
4949

5050
Queries are in the form `:- A.` where `A` is a positive (non-negated) atom. The
5151
typical rules about variable usage apply (see the "Anonymous variables" section
52-
of the [Program Safety page]({{ site.baseurl }}{% link lang_ref/program_safety.md %})). If you want to have a query consisting of
52+
of the [Program Safety page]({{ site.base_url }}{% link lang_ref/program_safety.md %})). If you want to have a query consisting of
5353
multiple atoms, write a rule defining a new relation and then query that
5454
relation. For example, the hypothetical query `:- A, B.` could be rewritten as
5555
the rule `R :- A, B.` and query `:- R.`. There can be only one query per

docs/lang_ref/lang_basics.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ type cmp =
5353
```
5454

5555
It also has built-in types representing logical formulas, but a discussion of
56-
these is delayed until the [section on logical formulas]({{ site.baseurl }}{% link lang_ref/logical_formulas.md %}).
56+
these is delayed until the [section on logical formulas]({{ site.base_url }}{% link lang_ref/logical_formulas.md %}).
5757

5858
#### List Notation
5959

@@ -421,7 +421,7 @@ with manipulating primitives):
421421
respectively. The string should either be a decimal integer preceded
422422
optionally by `-` or `+`, or a hexadecimal integer preceded by `0x`. The
423423
operations return `none` if the string is not in the proper format or
424-
represents an integer too large to fit in 32/64 bits.
424+
represents an integer of too great magnitude to fit in 32/64 bits.
425425

426426
Standard arithmetic notation can be used for signed `i32` operations. For
427427
example, `38 + 12 / 3` is shorthand for `i32_add(38, i32_sdiv(12, 3))`.

docs/lang_ref/logical_formulas.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -467,4 +467,4 @@ finds one in time; it returns `none` otherwise. Variables in a model can be
467467
inspected using `query_model`, which will return
468468
`none` if a variable is not present in the model or if it is of a type that
469469
cannot be concretely represented in Formulog (for example, Formulog does not
470-
have a concrete representation of a 13-bit bit vector).
470+
have a concrete representation of a 13-bit vector).

docs/starting.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ nav_order: 2
99
Thank you for your interest in Formulog!
1010
This page describes how to set up Formulog and provides some pointers on writing Formulog programs.
1111

12-
## Seting up Formulog
12+
## Setting up Formulog
1313

1414
There are three main ways to set up Formulog (listed in increasing order of number of dependencies):
1515

@@ -100,15 +100,15 @@ greeting("Hello, World")
100100

101101
Now that you have Formulog set up, the fun part starts: writing Formulog programs!
102102

103-
Check out our [tutorial]({{ site.baseurl }}{% link tutorial/index.md %}) for a walk-through of how to encode a refinement type system in Formulog.
103+
Check out our [tutorial]({{ site.base_url }}{% link tutorial/index.md %}) for a walk-through of how to encode a refinement type system in Formulog.
104104
Additional short-ish example programs can be found in the `examples/` directory (in the Docker image or repository base directory).
105105
For examples of larger developments, see the case studies we have used in publications:
106106

107107
- [a refinement type checker](https://github.com/aaronbembenek/making-formulog-fast/blob/main/benchmarks/dminor/bench.flg)
108108
- [a bottom-up points-to analysis for Java](https://github.com/aaronbembenek/making-formulog-fast/blob/main/benchmarks/scuba/bench.flg)
109109
- [a symbolic executor an LLVM fragment](https://github.com/aaronbembenek/making-formulog-fast/blob/main/benchmarks/symex/bench.flg)
110110

111-
See the [language reference]({{ site.baseurl }}{% link lang_ref/index.md %}) for details about Formulog constructs.
111+
See the [language reference]({{ site.base_url }}{% link lang_ref/index.md %}) for details about Formulog constructs.
112112

113113
Syntax highlighting is available for Visual Studio Code (follow instructions [here](https://github.com/HarvardPL/formulog-syntax)) and Vim (install [misc/flg.vim](https://github.com/HarvardPL/formulog/blob/master/misc/flg.vim)).
114114

docs/tutorial/index.md

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ nav_order: 3
77
# Tutorial: Building a Refinement Type Checker
88

99
In this tutorial, we'll implement a type checker for a small (but still interesting) refinement type system in Formulog.
10-
In particular, we'll implement the declarative, bidirectional type checking rules for the first system in the article [Refinement Types: A Tutorial](https://arxiv.org/abs/2010.07763) by Ranjit Jhala and Niki Vazou [1].
10+
In particular, we'll implement the declarative, bidirectional type checking rules for the first system in the article [Refinement Types: A Tutorial](https://arxiv.org/abs/2010.07763v1) by Ranjit Jhala and Niki Vazou [1].
1111
Our hope is that our tutorial gives a good overview of many Formulog features, and a flavor of what it is like to program a nontrivial analysis in Formulog.
1212

1313
### Intended Audience
@@ -24,7 +24,7 @@ If you have a question about the content of this tutorial, a suggestion for impr
2424

2525
### Attribution
2626

27-
This tutorial includes figures from the article [Refinement Types: A Tutorial](https://arxiv.org/abs/2010.07763) (v1) by Ranjit Jhala and Niki Vazou [1], which has been published under a [CC BY 4.0 license](https://creativecommons.org/licenses/by/4.0/).
27+
This tutorial includes figures from the article [Refinement Types: A Tutorial](https://arxiv.org/abs/2010.07763v1) by Ranjit Jhala and Niki Vazou [1], which has been published under a [CC BY 4.0 license](https://creativecommons.org/licenses/by/4.0/).
2828
We will refer to this article as "JV" for short.
2929

3030
## General Approach
@@ -35,7 +35,7 @@ Our typical approach when implementing an analysis in Formulog is thus to try to
3535

3636
This is the approach we will follow in this tutorial: directly translate the formalism of JV as we encounter it, and then go back to patch our implementation as necessary.
3737
Concretely, we will work our way through JV Sections 3.1 and 3.2.
38-
For the full, final code, see [tutorial.flg](tutorial.flg).
38+
For the full, final code, see [tutorial.flg](https://github.com/HarvardPL/formulog/blob/master/docs/tutorial/tutorial.flg).
3939

4040
## Definitions
4141

@@ -600,7 +600,7 @@ ent((X, t_refined(B, Y, P)) :: G, C) :-
600600
```
601601

602602
Now the type checker works on this example!
603-
(This isn't the most general solution: a better technique would be to create a fresh variable and substitute it with `Y` in `P` and `X` in `C`; however, this is good enough for now.)
603+
(This isn't the most general solution: a better technique would be to create a fresh variable and substitute it for `Y` in `P` and `X` in `C`; however, this is good enough for now.)
604604

605605
### Checking Functions
606606

@@ -772,10 +772,10 @@ As we mentioned earlier, please raise a [GitHub issue](https://github.com/Harvar
772772

773773
## References
774774

775-
[1] Ranjit Jhala and Niki Vazou. 2020. Refinement Types: A Tutorial. arXiv:2010.07763. https://arxiv.org/abs/2010.07763
775+
[1] Ranjit Jhala and Niki Vazou. 2020. Refinement Types: A Tutorial. arXiv:2010.07763v1. <https://arxiv.org/abs/2010.07763v1>
776776

777-
[2] Gavin M. Bierman, Andrew D. Gordon, Cătălin Hriţcu, and David Langworthy. 2012. Semantic Subtyping with an SMT Solver. Journal of Functional Programming 22, 1 (2012), 31–105. https://doi.org/10.1145/1863543.1863560
777+
[2] Gavin M. Bierman, Andrew D. Gordon, Cătălin Hriţcu, and David Langworthy. 2012. Semantic Subtyping with an SMT Solver. Journal of Functional Programming 22, 1 (2012), 31–105. <https://doi.org/10.1017/S0956796812000032>
778778

779-
[3] Yu Feng, Xinyu Wang, Isil Dillig, and Thomas Dillig. 2015. Bottom-up Context-Sensitive Pointer Analysis for Java. In Proceedings of the 13th Asian Symposium on Programming Languages and Systems. 465–484. https://doi.org/10.1007/978-3-319-26529-2_25
779+
[3] Yu Feng, Xinyu Wang, Isil Dillig, and Thomas Dillig. 2015. Bottom-up Context-Sensitive Pointer Analysis for Java. In Proceedings of the 13th Asian Symposium on Programming Languages and Systems. 465–484. <https://doi.org/10.1007/978-3-319-26529-2_25>
780780

781-
[4] Cristian Cadar, Daniel Dunbar, and Dawson Engler. 2008. KLEE: Unassisted and Automatic Generation of High-Coverage Tests for Complex Systems Programs. In Proceedings of the 8th USENIX Conference on Operating Systems Design and Implementation. 209–224. https://www.usenix.org/legacy/event/osdi08/tech/full_papers/cadar/cadar.pdf
781+
[4] Cristian Cadar, Daniel Dunbar, and Dawson Engler. 2008. KLEE: Unassisted and Automatic Generation of High-Coverage Tests for Complex Systems Programs. In Proceedings of the 8th USENIX Conference on Operating Systems Design and Implementation. 209–224. <https://www.usenix.org/legacy/event/osdi08/tech/full_papers/cadar/cadar.pdf>

docs/tutorial/tutorial.flg

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
DEFINITIONS
33
*******************************************************************************)
44

5-
(* An algebraic data type with a single variant *)
5+
(* An algebraic data type with two variants *)
66
type basic_typ =
77
| b_int
88
| b_bool
@@ -39,7 +39,7 @@ type kind =
3939
| k_base
4040
| k_star
4141

42-
(* Tuples and lists are built-in type *)
42+
(* Tuples and lists are built-in types *)
4343
type env = (var * typ) list
4444

4545
type expr =

0 commit comments

Comments
 (0)