8 Propositions
A proposition is a named hypothesis, assumption, or conclusion. Its text is the author’s statement. The language records relationships between statements; it does not judge whether they are scientifically justified.
Compact
#lang sciencelogo |
workflow "Does a smaller swing have a shorter period?" |
|
hypothesis shorter-swing [text = "A shorter swing has a shorter period"] |
assumption hand-timing [text = "Hand timing is comparable across trials"] |
conclusion regular-period [text = "The observed period was nearly constant"] |
|
stage Review |
hypotheses.shorter-swing += conclusion not-supported [ |
text = "The measurements did not support a shorter period" |
] |
Verbose
#lang sciencelogo |
workflow "Does a smaller swing have a shorter period?" |
|
hypothesis shorter-swing [set text to "A shorter swing has a shorter period"] |
assumption hand-timing [set text to "Hand timing is comparable across trials"] |
conclusion regular-period [set text to "The observed period was nearly constant"] |
|
start stage Review |
update shorter-swing of hypotheses with conclusion not-supported [ |
set text to "The measurements did not support a shorter period" |
] |
regular-period is an independent conclusion: it is not linked to a stated hypothesis. not-supported is nested under shorter-swing, so the written method explicitly says which hypothesis it answers. A hypothesis may remain without a conclusion, and a conclusion need not answer a hypothesis.
8.1 Names and references
The plural names hypotheses, assumptions, and conclusions access propositions at the root and at every nested level. The two conclusions above have these paths:
Compact
conclusions.regular-period |
hypotheses.shorter-swing.conclusions.not-supported |
Verbose
regular-period of conclusions |
not-supported of hypotheses.shorter-swing.conclusions |
Add .text to read or update the wording. Each name is unique among propositions of its type under the same parent. The same name may occur under different parents because the full paths differ. Every proposition can hold children of any of the three types.
8.2 Adding and updating
+= adds a named child. Repeating its type and name at the same location is an error; += never silently replaces an existing proposition. Use = to update a field of an existing proposition:
Compact
hypotheses.shorter-swing.conclusions.not-supported.text = |
"The revised finding" |
Verbose
set text of hypotheses.shorter-swing.conclusions.not-supported to |
"The revised finding" |
An independent conclusion can also be added later:
Compact
conclusions += conclusion regular-period [text = "The period was nearly constant"] |
Verbose
update conclusions with conclusion regular-period [set text to "The period was nearly constant"] |
Nested propositions can be written inside the original declaration. A collection is a named record; an omitted collection starts empty.
Compact
hypothesis shorter-swing [ |
text = "A shorter swing has a shorter period" |
conclusions = [not-supported = [text = "Measurements did not support it"]] |
] |
Verbose
hypothesis shorter-swing [ |
set text to "A shorter swing has a shorter period" |
set conclusions to [set not-supported to [set text to "Measurements did not support it"]] |
] |
The proposition contract gives the complete rule and explains how a proposition can appear in a paired stage’s information set.