vault backup: 2023-11-13 12:51:23
This commit is contained in:
parent
aac999c692
commit
5c819ac710
2 changed files with 49 additions and 22 deletions
32
.obsidian/workspace.json
vendored
32
.obsidian/workspace.json
vendored
|
@ -4,28 +4,16 @@
|
||||||
"type": "split",
|
"type": "split",
|
||||||
"children": [
|
"children": [
|
||||||
{
|
{
|
||||||
"id": "c0bba0acc3e22afb",
|
"id": "e1841f20d0865df6",
|
||||||
"type": "tabs",
|
"type": "tabs",
|
||||||
"children": [
|
"children": [
|
||||||
{
|
{
|
||||||
"id": "9853b375f7893cb9",
|
"id": "a3f61b3a67420afc",
|
||||||
"type": "leaf",
|
"type": "leaf",
|
||||||
"state": {
|
"state": {
|
||||||
"type": "markdown",
|
"type": "markdown",
|
||||||
"state": {
|
"state": {
|
||||||
"file": "4a1s/MFES/PL - Aula 4.md",
|
"file": "4a1s/MFES/PL - Aula 8.md",
|
||||||
"mode": "source",
|
|
||||||
"source": false
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": "47ffa0ada12cc565",
|
|
||||||
"type": "leaf",
|
|
||||||
"state": {
|
|
||||||
"type": "markdown",
|
|
||||||
"state": {
|
|
||||||
"file": "4a1s/MFES/PL - Aula 6.md",
|
|
||||||
"mode": "source",
|
"mode": "source",
|
||||||
"source": false
|
"source": false
|
||||||
}
|
}
|
||||||
|
@ -97,7 +85,7 @@
|
||||||
"state": {
|
"state": {
|
||||||
"type": "backlink",
|
"type": "backlink",
|
||||||
"state": {
|
"state": {
|
||||||
"file": "4a1s/MFES/PL - Aula 4.md",
|
"file": "4a1s/MFES/PL - Aula 8.md",
|
||||||
"collapseAll": false,
|
"collapseAll": false,
|
||||||
"extraContext": false,
|
"extraContext": false,
|
||||||
"sortOrder": "alphabetical",
|
"sortOrder": "alphabetical",
|
||||||
|
@ -114,7 +102,7 @@
|
||||||
"state": {
|
"state": {
|
||||||
"type": "outgoing-link",
|
"type": "outgoing-link",
|
||||||
"state": {
|
"state": {
|
||||||
"file": "4a1s/MFES/PL - Aula 4.md",
|
"file": "4a1s/MFES/PL - Aula 8.md",
|
||||||
"linksCollapsed": false,
|
"linksCollapsed": false,
|
||||||
"unlinkedCollapsed": true
|
"unlinkedCollapsed": true
|
||||||
}
|
}
|
||||||
|
@ -137,7 +125,7 @@
|
||||||
"state": {
|
"state": {
|
||||||
"type": "outline",
|
"type": "outline",
|
||||||
"state": {
|
"state": {
|
||||||
"file": "4a1s/MFES/PL - Aula 4.md"
|
"file": "4a1s/MFES/PL - Aula 8.md"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
@ -170,10 +158,12 @@
|
||||||
"digitalgarden:Digital Garden Publication Center": false
|
"digitalgarden:Digital Garden Publication Center": false
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"active": "9853b375f7893cb9",
|
"active": "a3f61b3a67420afc",
|
||||||
"lastOpenFiles": [
|
"lastOpenFiles": [
|
||||||
"4a1s/MFES/PL - Aula 3.md",
|
"4a1s/MFES/PL - Aula 8.md",
|
||||||
"4a1s/MFES/PL - Aula 4.md",
|
"4a1s/MFES/PL - Aula 4.md",
|
||||||
|
"4a1s/MFES/MFES - UC Details.md",
|
||||||
|
"4a1s/MFES/PL - Aula 3.md",
|
||||||
"4a1s/MFES/PL - Aula 5.md",
|
"4a1s/MFES/PL - Aula 5.md",
|
||||||
"4a1s/MFES/PL - Aula 7.md",
|
"4a1s/MFES/PL - Aula 7.md",
|
||||||
"4a1s/index.md",
|
"4a1s/index.md",
|
||||||
|
@ -196,9 +186,7 @@
|
||||||
"Excalidraw/doodles.excalidraw.md",
|
"Excalidraw/doodles.excalidraw.md",
|
||||||
"My Digital Garden.md",
|
"My Digital Garden.md",
|
||||||
"4a1s/MFES/T - Aula 2.md",
|
"4a1s/MFES/T - Aula 2.md",
|
||||||
"4a1s/MFES/PL - Aula 2.md",
|
|
||||||
"Images/Pasted image 20231018122801.png",
|
"Images/Pasted image 20231018122801.png",
|
||||||
"Excalidraw/Drawing 2023-10-25 12.16.38.excalidraw.md",
|
|
||||||
"Images/Pasted image 20231018121319.png",
|
"Images/Pasted image 20231018121319.png",
|
||||||
"Images/Pasted image 20231018120412.png",
|
"Images/Pasted image 20231018120412.png",
|
||||||
"Images/Pasted image 20231018120219.png",
|
"Images/Pasted image 20231018120219.png",
|
||||||
|
|
39
4a1s/MFES/PL - Aula 8.md
Normal file
39
4a1s/MFES/PL - Aula 8.md
Normal file
|
@ -0,0 +1,39 @@
|
||||||
|
|
||||||
|
```c
|
||||||
|
module Offices
|
||||||
|
|
||||||
|
type office = One | Two | Three
|
||||||
|
type person = Ana | Nuno | Pedro | Maria
|
||||||
|
|
||||||
|
predicate hasOffice (person) (office)
|
||||||
|
|
||||||
|
axiom A1 : forall p:person. exists o:office. hasOffice p o
|
||||||
|
axiom A2 : forall p:person, o1 o2 : office.
|
||||||
|
hasOffice p o1 /\ hasOffice p o2 -> o1 = o2
|
||||||
|
|
||||||
|
axiom B : forall o1 o2 : office. hasOffice Pedro o1 /\ hasOffice Nuno o2 ->
|
||||||
|
o1 <> o2
|
||||||
|
|
||||||
|
predicate alone (p:person) = forall o:office. forall p1:person.
|
||||||
|
(hasOffice p o) /\ hasOffice p1 o -> p = p1
|
||||||
|
|
||||||
|
axiom C : alone Ana -> alone Pedro
|
||||||
|
axiom D : forall p1 p2 p3: person, o:office.
|
||||||
|
hasOffice p1 o /\ hasOffice p2 o /\ hasOffice p3 o ->
|
||||||
|
p1 = p2 \/ p1 = p3 \/ p3 = p2
|
||||||
|
|
||||||
|
goal sanity_test : false (*check if the model makes sense*)
|
||||||
|
|
||||||
|
goal g1 : hasOffice Maria One -> alone Maria
|
||||||
|
goal g2 : forall o1:office. (hasOffice Ana o1 /\ hasOffice Nuno o1) ->
|
||||||
|
exists o2:office. hasOffice Pedro o2 /\ hasOffice Maria o2
|
||||||
|
|
||||||
|
predicate empty (o:office) = forall p:person. not (hasOffice p o)
|
||||||
|
|
||||||
|
lemma atMostOneEmpty : forall o1 o2: office. empty o1 /\ empty o2 ->
|
||||||
|
o1 = o2
|
||||||
|
|
||||||
|
end
|
||||||
|
```
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue