You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Our Hoare triples are based on a simple imperative language (SIL).
322
-
SIL has only 4 kinds of statements:
321
+
Our Hoare triples are based on a simple imperative language (SIL).
322
+
SIL has only 4 kinds of statements:
323
323
<ul class="help-list">
324
324
<li>assignments <code>x := t</code> where <code>t</code> is a term</li>
325
325
<li>conditionals <code>if c then s1 else s2</code> where <code>c</code> is a formula and <code>s1</code> and <code>s2</code> are statements</li>
@@ -334,7 +334,7 @@ const help = () => {
334
334
<br>
335
335
<h2>General usage</h2>
336
336
<p>
337
-
You can click on the <span style="color: ${incompleteColor}">orange</span> plus buttons next to incomplete proof trees, then choose a proof rules to apply.
337
+
You can click on the <span style="color: ${incompleteColor}">orange</span> plus buttons next to incomplete proof trees, then choose a proof rules to apply.
338
338
</p>
339
339
<p>
340
340
You can click on the <span style="color: ${failureColor}">red</span> minus button to unapply proof rules that are already applied.
@@ -362,7 +362,7 @@ For rules with premises, you can click on the <span style="background: ${foldCol
362
362
<br>
363
363
<h3>Z3 support</h3>
364
364
<p>
365
-
The proof assistant currently cannot evaluate functions or relations. For example, if there is a term <code>1 + 1</code>, it will get stuck, it will not evaluate to <code>2</code>. Therefore you cannot prove <code>P(1 + 1) |- P(2)</code> by normal proof rules. For these cases, you can use the <strong>Z3</strong> pseudo-rule. This rule runs the Z3 theorem prover in the background to check if the goal is valid. You can also use this rule for other logical goals you do not want to write the full proof for, but still want to check.
365
+
The proof assistant currently cannot evaluate functions or relations. For example, if there is a term <code>1 + 1</code>, it will get stuck, it will not evaluate to <code>2</code>. Therefore you cannot prove <code>P(1 + 1) |- P(2)</code> by normal proof rules. For these cases, you can use the <strong>Z3</strong> pseudo-rule. This rule runs the Z3 theorem prover in the background to check if the goal is valid. You can also use this rule for other logical goals you do not want to write the full proof for, but still want to check.
366
366
</p>
367
367
<p>
368
368
If Z3 finds the goal to be valid, it will draw a <span style="color: ${successColor}">green</span> line over it. If Z3 finds the goal to be not valid, it will draw a <span style="color: ${failureColor}">red</span> line over it.
@@ -379,7 +379,7 @@ For rules with premises, you can click on the <span style="background: ${foldCol
@@ -670,7 +690,7 @@ ProofTree.prototype.image = function (root) {
670
690
entry.proof.draw()
671
691
}catch(err){
672
692
modalWarning(err.message)
673
-
console.log(err);
693
+
console.log(err)
674
694
}
675
695
})
676
696
})
@@ -702,7 +722,7 @@ ProofTree.prototype.image = function (root) {
702
722
deleteLabel.on('mousedown',async(e)=>{
703
723
constmsg=`Are you sure you want to <strong>unapply</strong> the ${this.unicodeName} rule
704
724
for the conclusion <br>${this.conclusion.unicode()}<br> and the rules applied after/above?`
705
-
console.log(this);
725
+
console.log(this)
706
726
if(awaitmodalConfirm(msg)){
707
727
this.toDelete=true
708
728
refreshAll()
@@ -713,7 +733,7 @@ ProofTree.prototype.image = function (root) {
713
733
constmsg=`Are you sure you want to <strong>detach</strong> the proof at the ${this.unicodeName} rule
714
734
for the conclusion <br>${this.conclusion.unicode()} ?<br>
715
735
This will unapply the ${this.unicodeName} rule in the current proof tree, and also will create an extra proof tree with the ${this.unicodeName} rule at the bottom, followed by the rest of this branch of the proof tree.`
0 commit comments