Skip to content

Commit cbcd091

Browse files
committed
proof for cAnd
1 parent a5a3b58 commit cbcd091

File tree

5 files changed

+16
-2
lines changed

5 files changed

+16
-2
lines changed

src/proof/Henkin.ard

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,6 @@
4040
: Prf' T (cAnd f g) <-> (\Sigma (Prf' T f) (Prf' T g)) =>
4141
(
4242
\lam p => {?},
43-
\lam _x => {?}
43+
\lam (inP prf1, inP prf2) => inP (and prf1 prf2)
4444
)
4545
}

src/proof/PrfCorrect.ard

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,7 @@
6161
(\new Array (Universe {I.structure}) (relArity r) (\lam i => evaluate I (args' i)))
6262
=> ext (ext (\lam j => prfs' j I m))
6363
\in rewrite h prf'
64+
| cAnd a toShow, and prf1 prf2 => \lam I m => (prfCorrectness prf1 I m, prfCorrectness prf2 I m)
6465
\where {
6566
-- to work around termintation checking
6667

src/proof/PrfFinite.ard

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -124,3 +124,13 @@
124124
(\lam i => prfWeaken (prfs' i).4 (\lam h => byLeft $ SubsetHelper.subsetFiniteUnion' {_} {S} (i, idp) h))
125125
(prfWeaken prf'.4 (byRight __))
126126
)
127+
| cAnd a toShow, and prf1 prf2 =>
128+
\let
129+
| h1 => prfFinite prf1
130+
| h2 => prfFinite prf2
131+
\in (
132+
h1.1 ∪ h2.1,
133+
SubsetHelper.subsetUnion h1.2 h2.2,
134+
FinSets.FinUnion h1.3 h2.3,
135+
and (prfWeaken h1.4 (byLeft __)) (prfWeaken h2.4 (byRight __))
136+
)

src/proof/PrfWeaken.ard

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,4 +23,5 @@
2323
| equal a b, symm prf => symm (prfWeaken prf sub)
2424
| equal a b, trans prf1 prf2 => trans (prfWeaken prf1 sub) (prfWeaken prf2 sub)
2525
| equal a b, fcong prfs pa pb => fcong (\lam i => prfWeaken (prfs i) sub) pa pb
26-
| atomic r terms, rcong prfs prf => rcong (\lam i => prfWeaken (prfs i) sub) (prfWeaken prf sub)
26+
| atomic r terms, rcong prfs prf => rcong (\lam i => prfWeaken (prfs i) sub) (prfWeaken prf sub)
27+
| cAnd a b, and prf1 prf2 => and (prfWeaken prf1 sub) (prfWeaken prf2 sub)

src/proof/Proof.ard

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,8 @@
3636
(pa : a = apply f args) (pb : b = apply f args')
3737
}
3838

39+
| cAnd a b => and (Prf axioms a) (Prf axioms b)
40+
3941

4042
-- TODO what is this rule?
4143
-- ¬(¬f -> g) = ¬(f ∨ g) = ¬f ∧ ¬g

0 commit comments

Comments
 (0)