Skip to content

Commit bcd6514

Browse files
committed
Merge branch 'main' into dev
2 parents 23e7718 + 68560e8 commit bcd6514

37 files changed

+1153
-3525
lines changed

.cirrus.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
freebsd_instance:
2-
image_family: freebsd-14-1
2+
image_family: freebsd-14-2
33
task:
44
name: FreeBSD
55
artifacts_cache:

Project.toml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
name = "SoleLogics"
22
uuid = "b002da8f-3cb3-4d91-bbe3-2953433912b5"
3-
authors = ["Mauro MILELLA", "Giovanni PAGLIARINI", "Edoardo PONSANESI", "Alberto PAPARELLA", "Eduard I. STAN"]
4-
version = "0.12.0"
3+
authors = ["Mauro MILELLA", "Giovanni PAGLIARINI", "Alberto PAPARELLA", "Edoardo PONSANESI", "Eduard I. STAN"]
4+
version = "0.13.0"
55

66
[deps]
77
AbstractTrees = "1520ce14-60c1-5f80-bbc7-55ef81b5835c"

benchmarks/alphacheck.jl

Lines changed: 0 additions & 91 deletions
This file was deleted.

src/SoleLogics.jl

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -115,6 +115,8 @@ include("types/modal-logic.jl")
115115

116116
include("utils/modal-logic.jl")
117117

118+
include("utils/multi-modal-logic.jl")
119+
118120
export WorldFilter
119121
export FunctionalWorldFilter, FilteredRelation
120122
export IntervalLengthFilter

src/many-valued-logics/ManyValuedLogics.jl

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,16 @@ module ManyValuedLogics
22

33
using ..SoleLogics
44

5+
export FiniteTruth
6+
7+
include("finitetruth.jl")
8+
59
export BinaryOperation
610

711
include("operations.jl")
812

913
include("axioms.jl")
1014

11-
export FiniteTruth
1215
export Monoid, CommutativeMonoid
1316
export FiniteLattice, FiniteBoundedLattice, FiniteResiduatedLattice
1417
export FiniteFLewAlgebra, FiniteHeytingAlgebra
@@ -26,8 +29,6 @@ include("many-valued-formulas.jl")
2629

2730
include("algebras/algebras.jl")
2831

29-
include("finite-index-algebras.jl")
30-
3132
export alphacheck
3233

3334
include("check.jl")
Lines changed: 18 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,22 @@
1-
d2 = Vector{BooleanTruth}([⊥, ⊤])
1+
# Domain ⊤, ⊥
2+
t, b = FiniteTruth.([1:2]...)
23

3-
jt2 = Dict{Tuple{BooleanTruth, BooleanTruth}, BooleanTruth}(
4-
(⊥, ⊥) => ⊥, (⊥, ⊤) => ⊤,
5-
(⊤, ⊥) => ⊤, (⊤, ⊤) =>
6-
)
4+
# α ∨ β = max{α, β}
5+
jointruthtable = [
6+
# ⊤ ⊥
7+
t, t, #
8+
t, b #
9+
]
710

8-
mt2 = Dict{Tuple{BooleanTruth, BooleanTruth}, BooleanTruth}(
9-
(⊥, ⊥) => ⊥, (⊥, ⊤) => ⊥,
10-
(⊤, ⊥) => ⊥, (⊤, ⊤) =>
11-
)
11+
# α ∧ β = min{α, β}
12+
meettruthtable = [
13+
# ⊤ ⊥
14+
t, b, #
15+
b, b #
16+
]
1217

13-
j2 = BinaryOperation(d2, jt2)
18+
join = BinaryOperation{2}(jointruthtable)
19+
meet = BinaryOperation{2}(meettruthtable)
20+
# In booleanalgebra, the t-norm ⋅ is ∧
1421

15-
m2 = BinaryOperation(d2, mt2)
16-
17-
booleanalgebra = FiniteFLewAlgebra(j2, m2, m2, ⊥, ⊤)
22+
booleanalgebra = FiniteFLewAlgebra{2}(join, meet, meet, b, t)

src/many-valued-logics/algebras/g3.jl

Lines changed: 20 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,24 @@
1-
α = FiniteTruth("α")
1+
# Domain ⊤, ⊥, α
2+
t, b, α = FiniteTruth.([1:3]...)
23

3-
d3 = Vector{FiniteTruth}([⊥, α, ⊤])
4+
# α ∨ β = max{α, β}
5+
jointruthtable = [
6+
# ⊤ ⊥ α
7+
t, t, t, #
8+
t, b, α, #
9+
t, α, α # α
10+
]
411

5-
# a ∨ b = max{a, b}
6-
jointable = Dict{Tuple{FiniteTruth, FiniteTruth}, FiniteTruth}(
7-
(⊥, ⊥) => ⊥, (⊥, α) => α, (⊥, ⊤) => ⊤,
8-
(α, ⊥) => α, (α, α) => α, (α, ⊤) => ⊤,
9-
(⊤, ⊥) => ⊤, (⊤, α) => ⊤, (⊤, ⊤) =>
10-
)
12+
# α ∧ β = min{α, β}
13+
meettruthtable = [
14+
# ⊤ ⊥ α
15+
t, b, α, #
16+
b, b, b, #
17+
α, b, α # α
18+
]
1119

12-
# a ∧ b = min{a, b}
13-
meettable = Dict{Tuple{FiniteTruth, FiniteTruth}, FiniteTruth}(
14-
(⊥, ⊥) => ⊥, (⊥, α) => ⊥, (⊥, ⊤) => ⊥,
15-
(α, ⊥) => ⊥, (α, α) => α, (α, ⊤) => α,
16-
(⊤, ⊥) => ⊥, (⊤, α) => α, (⊤, ⊤) =>
17-
)
20+
join = BinaryOperation{3}(jointruthtable)
21+
meet = BinaryOperation{3}(meettruthtable)
22+
# In G3, the t-norm ⋅ is ∧
1823

19-
join = BinaryOperation(d3, jointable)
20-
meet = BinaryOperation(d3, meettable)
21-
22-
G3 = FiniteFLewAlgebra(join, meet, meet, ⊥, ⊤)
24+
G3 = FiniteFLewAlgebra{3}(join, meet, meet, b, t)

src/many-valued-logics/algebras/g4.jl

Lines changed: 22 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,26 @@
1-
α = FiniteTruth("α")
2-
β = FiniteTruth("β")
1+
# Domain ⊤, ⊥, α, β
2+
t, b, α, β = FiniteTruth.([1:4]...)
33

4-
d4 = Vector{FiniteTruth}([⊥, α, β, ⊤])
4+
# α ∨ β = max{α, β}
5+
jointruthtable = [
6+
# ⊤ ⊥ α β
7+
t, t, t, t, #
8+
t, b, α, β, #
9+
t, α, α, β, # α
10+
t, β, β, β # β
11+
]
512

6-
# a ∨ b = max{a, b}
7-
jointable = Dict{Tuple{FiniteTruth, FiniteTruth}, FiniteTruth}(
8-
(⊥, ⊥) => ⊥, (⊥, α) => α, (⊥, β) => β, (⊥, ⊤) => ⊤,
9-
(α, ⊥) => α, (α, α) => α, (α, β) => β, (α, ⊤) => ⊤,
10-
(β, ⊥) => β, (β, α) => β, (β, β) => β, (β, ⊤) => ⊤,
11-
(⊤, ⊥) => ⊤, (⊤, α) => ⊤, (⊤, β) => ⊤, (⊤, ⊤) =>
12-
)
13+
# α ∧ β = min{α, β}
14+
meettruthtable = [
15+
# ⊤ ⊥ α β
16+
t, b, α, β, #
17+
b, b, b, b, #
18+
α, b, α, α, # α
19+
β, b, α, β # β
20+
]
1321

14-
# a ∧ b = min{a, b}
15-
meettable = Dict{Tuple{FiniteTruth, FiniteTruth}, FiniteTruth}(
16-
(⊥, ⊥) => ⊥, (⊥, α) => ⊥, (⊥, β) => ⊥, (⊥, ⊤) => ⊥,
17-
(α, ⊥) => ⊥, (α, α) => α, (α, β) => α, (α, ⊤) => α,
18-
(β, ⊥) => ⊥, (β, α) => α, (β, β) => β, (β, ⊤) => β,
19-
(⊤, ⊥) => ⊥, (⊤, α) => α, (⊤, β) => β, (⊤, ⊤) =>
20-
)
22+
join = BinaryOperation{4}(jointruthtable)
23+
meet = BinaryOperation{4}(meettruthtable)
24+
# In G4, the t-norm ⋅ is ∧
2125

22-
join = BinaryOperation(d4, jointable)
23-
meet = BinaryOperation(d4, meettable)
24-
25-
G4 = FiniteFLewAlgebra(join, meet, meet, ⊥, ⊤)
26+
G4 = FiniteFLewAlgebra{4}(join, meet, meet, b, t)

src/many-valued-logics/algebras/g5.jl

Lines changed: 24 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,28 @@
1-
α = FiniteTruth("α")
2-
β = FiniteTruth("β")
3-
γ = FiniteTruth("γ")
1+
# Domain ⊤, ⊥, α, β, γ
2+
t, b, α, β, γ = FiniteTruth.([1:5]...)
43

5-
d5 = Vector{FiniteTruth}([⊥, α, β, γ, ⊤])
4+
# α ∨ β = max{α, β}
5+
jointruthtable = [
6+
# ⊤ ⊥ α β γ
7+
t, t, t, t, t, #
8+
t, b, α, β, γ, #
9+
t, α, α, β, γ, # α
10+
t, β, β, β, γ, # β
11+
t, γ, γ, γ, γ # γ
12+
]
613

7-
# a ∨ b = max{a, b}
8-
jointable = Dict{Tuple{FiniteTruth, FiniteTruth}, FiniteTruth}(
9-
(⊥, ⊥) => ⊥, (⊥, α) => α, (⊥, β) => β, (⊥, γ) => γ, (⊥, ⊤) => ⊤,
10-
(α, ⊥) => α, (α, α) => α, (α, β) => β, (α, γ) => γ, (α, ⊤) => ⊤,
11-
(β, ⊥) => β, (β, α) => β, (β, β) => β, (β, γ) => γ, (β, ⊤) => ⊤,
12-
(γ, ⊥) => γ, (γ, α) => γ, (γ, β) => γ, (γ, γ) => γ, (γ, ⊤) => ⊤,
13-
(⊤, ⊥) => ⊤, (⊤, α) => ⊤, (⊤, β) => ⊤, (⊤, γ) => ⊤, (⊤, ⊤) =>
14-
)
14+
# α ∧ β = min{α, β}
15+
meettruthtable = [
16+
# ⊤ ⊥ α β
17+
t, b, α, β, γ, #
18+
b, b, b, b, b, #
19+
α, b, α, α, α, # α
20+
β, b, α, β, β, # β
21+
γ, b, α, β, γ # γ
22+
]
1523

16-
# a ∧ b = min{a, b}
17-
meettable = Dict{Tuple{FiniteTruth, FiniteTruth}, FiniteTruth}(
18-
(⊥, ⊥) => ⊥, (⊥, α) => ⊥, (⊥, β) => ⊥, (⊥, γ) => ⊥, (⊥, ⊤) => ⊥,
19-
(α, ⊥) => ⊥, (α, α) => α, (α, β) => α, (α, γ) => α, (α, ⊤) => α,
20-
(β, ⊥) => ⊥, (β, α) => α, (β, β) => β, (β, γ) => β, (β, ⊤) => β,
21-
(γ, ⊥) => ⊥, (γ, α) => α, (γ, β) => β, (γ, γ) => γ, (γ, ⊤) => γ,
22-
(⊤, ⊥) => ⊥, (⊤, α) => α, (⊤, β) => β, (⊤, γ) => γ, (⊤, ⊤) =>
23-
)
24+
join = BinaryOperation{5}(jointruthtable)
25+
meet = BinaryOperation{5}(meettruthtable)
26+
# In G5, the t-norm ⋅ is ∧
2427

25-
join = BinaryOperation(d5, jointable)
26-
meet = BinaryOperation(d5, meettable)
27-
28-
G5 = FiniteFLewAlgebra(join, meet, meet, ⊥, ⊤)
28+
G5 = FiniteFLewAlgebra{5}(join, meet, meet, b, t)

src/many-valued-logics/algebras/h4.jl

Lines changed: 22 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,26 @@
1-
α = FiniteTruth("α")
2-
β = FiniteTruth("β")
1+
# Domain ⊤, ⊥, α, β
2+
t, b, α, β = FiniteTruth.([1:4]...)
33

4-
d4 = Vector{FiniteTruth}([⊥, α, β, ⊤])
4+
# α ∨ β = max{α, β}
5+
jointruthtable = [
6+
# ⊤ ⊥ α β
7+
t, t, t, t, #
8+
t, b, α, β, #
9+
t, α, α, t, # α
10+
t, β, t, β # β
11+
]
512

6-
djointable = Dict{Tuple{FiniteTruth, FiniteTruth}, FiniteTruth}(
7-
(⊥, ⊥) => ⊥, (⊥, α) => α, (⊥, β) => β, (⊥, ⊤) => ⊤,
8-
(α, ⊥) => α, (α, α) => α, (α, β) => ⊤, (α, ⊤) => ⊤,
9-
(β, ⊥) => β, (β, α) => ⊤, (β, β) => β, (β, ⊤) => ⊤,
10-
(⊤, ⊥) => ⊤, (⊤, α) => ⊤, (⊤, β) => ⊤, (⊤, ⊤) =>
11-
)
13+
# α ∧ β = min{α, β}
14+
meettruthtable = [
15+
# ⊤ ⊥ α β
16+
t, b, α, β, #
17+
b, b, b, b, #
18+
α, b, α, b, # α
19+
β, b, b, β # β
20+
]
1221

13-
dmeettable = Dict{Tuple{FiniteTruth, FiniteTruth}, FiniteTruth}(
14-
(⊥, ⊥) => ⊥, (⊥, α) => ⊥, (⊥, β) => ⊥, (⊥, ⊤) => ⊥,
15-
(α, ⊥) => ⊥, (α, α) => α, (α, β) => ⊥, (α, ⊤) => α,
16-
(β, ⊥) => ⊥, (β, α) => ⊥, (β, β) => β, (β, ⊤) => β,
17-
(⊤, ⊥) => ⊥, (⊤, α) => α, (⊤, β) => β, (⊤, ⊤) =>
18-
)
22+
join = BinaryOperation{4}(jointruthtable)
23+
meet = BinaryOperation{4}(meettruthtable)
24+
# In H4, the t-norm ⋅ is ∧
1925

20-
djoin = BinaryOperation(d4, djointable)
21-
dmeet = BinaryOperation(d4, dmeettable)
22-
23-
H4 = FiniteFLewAlgebra(djoin, dmeet, dmeet, ⊥, ⊤)
26+
H4 = FiniteFLewAlgebra{4}(join, meet, meet, b, t)

0 commit comments

Comments
 (0)