|
Warning: this is an htmlized version!
The original is here, and the conversion rules are here. |
-- Why is the pentagon DAG a non-distributive lattice?
-- Eduard Ochs, 2011mar08
-- (find-books "__alg/__alg.el" "gratzer")
-- (find-gratzerpage (+ 31 109) "II. Distributive Lattices")
-- (find-LATEX "2011ebl-abs.tex" "FHAs")
-- (find-angg "LATEX/2017distributivity.tex")
--[[
* (eepitch-lua51)
* (eepitch-kill)
* (eepitch-lua51)
--]]
Elts = split "T L+ R L- bt"
And = {}
Or = {}
feed = function (Op, P, results)
Op[P] = {}
for i,Q in ipairs(Elts) do
Op[P][Q] = split(results)[i]
end
end
-- (fooi "aa" "T " "bb" "L+" "cc" "R " "dd" "L-" "ee" "bt")
-- T
-- L+
-- R
-- L-
-- bt
-- * | T L+ R L- bt
----+-----------------
feed(And, "T" , "T L+ R L- bt")
feed(And, "L+", "L+ L+ bt L- bt")
feed(And, "R" , "R bt R bt bt")
feed(And, "L-", "L- L- bt L- bt")
feed(And, "bt", "bt bt bt bt bt")
-- v | T L+ R L- bt
----+-----------------
feed(Or, "T" , "T T T T T ")
feed(Or, "L+", "T L+ T L+ L+")
feed(Or, "R" , "T T R T R ")
feed(Or, "L-", "T L+ T L- L-")
feed(Or, "bt", "T L+ R L- bt")
PP(And)
PP(Or)
testcomm = function (op)
local Op = _G[op]
for _,P in ipairs(Elts) do
for _,Q in ipairs(Elts) do
if Op[P][Q] ~= Op[Q][P] then print("not comm", op, P, Q) end
end
end
end
testassoc = function (op)
local Op = _G[op]
for _,P in ipairs(Elts) do
for _,Q in ipairs(Elts) do
for _,R in ipairs(Elts) do
if Op[Op[P][Q]][R] ~= Op[P][Op[Q][R]] then
print("not assoc", op, P, Q, R)
end
end
end
end
end
testdistr = function (times, plus)
local Times, Plus = _G[times], _G[plus]
local pl = function (P, Q) return P.." "..plus.." "..Q end
local ti = function (P, Q) return P.." "..times.." "..Q end
local ppl = function (P, Q) return "("..pl(P, Q)..")" end
local pti = function (P, Q) return "("..ti(P, Q)..")" end
for _,P in ipairs(Elts) do
for _,Q in ipairs(Elts) do
for _,R in ipairs(Elts) do
if Times[Plus[P][Q]][R] ~= Plus[Times[P][R]][Times[Q][R]] then
-- print("not distr", times, plus, P, Q, R)
print(ti(ppl(P, Q), R).." ~= "..pl(pti(P, R), pti(Q, R)))
end
end
end
end
end
testcomm("And")
testcomm("Or")
testassoc("And")
testassoc("Or")
testdistr("And", "Or")
testdistr("Or", "And")
--[[
* (eepitch-lua51)
* (eepitch-kill)
* (eepitch-lua51)
dofile "distributivity.lua"
testcomm("And")
testcomm("Or")
testassoc("And")
testassoc("Or")
testdistr("And", "Or")
testdistr("Or", "And")
--]]
--[[
T (R v L-) & L+ == (R & L+) v (L- & L+)
L+ \ \----/ \----/ \-----/
| R T B L-
L- / \-----------/ \----------------/
B L+ L-
\------------------------------------/
0
(R & L+) v L- == (R v L-) & (L+ v L-)
\----/ \----/ \-----/
B T L+
\-----------/ \------------------/
L- L+
\-------------------------------------/
0
.
. .
. . .
. v . .
. P Q R .
. . & .
. & .
. .
. (P&Q)vR<->(P&R)v(Q&R)
--]]
--[[
%*
% (eedn4a-bounded)
% (find-sh0 "cd ~/LATEX/ && dvips -D 600 -P pk -o tmp.ps tmp.dvi")
% (find-sh0 "cd ~/LATEX/ && dvired -D 600 -P pk -o tmp.ps tmp.dvi")
% (find-pspage "~/LATEX/tmp.ps")
$L^+ = §∧L^+ = (R∨L^-)∧L^+ \neq (R∧L^+)∨(L^-∧L^+) = ®∨L^- = L^-$
%:*&*\land *
%:*v*\lor *
This proof presents no problems:
%:
%: ------ ------
%: P&Q|-P P|-PvQ
%: ------------- -------- ------ ------
%: P&Q|-PvQ Q&R|-PvQ P&R|-R Q&R|-R
%: --------------------- --------------
%: (P&R)v(Q&R)|-PvQ (P&R)v(Q&R)|-R
%: ------------------------------------
%: (P&R)v(Q&R)|-(PvQ)&R
%:
%: ^distr-ok
%:
$$\ded{distr-ok}$$
%: P&((PvQ)&R)|-P P&((PvQ)&R)|-R Q&((PvQ)&R)|-Q Q&((PvQ)&R)|-R
%: ------------------------------ ------------------------------
%: P&((PvQ)&R)|-P&R Q&((PvQ)&R)|-Q&R
%: ------------------- ------------------
%: P|-((PvQ)&R)->(P&R) Q|-((PvQ)&R)->(Q&R)
%: -----------------------------------------------
%: (PvQ)&R|-PvQ PvQ|-((PvQ)&R)->(P&R)
%: ======================= ------------------------
%: (PvQ)&R|-(PvQ)&((PvQ)&R) (PvQ)&((PvQ)&R)|-P&RvQ&R
%: -----------------------------------------------
%: (PvQ)&R|-P&RvQ&R
%:
%: ^distr-ok-hard
%:
$$\ded{distr-ok-hard}$$
This one, which seems to require `$⊃$', fails in some way:
%:
%: (PvQ)&R (PvQ)&R
%: ------ -------
%: [P]^1 R [Q]^1 R
%: --------- ---------
%: P&R Q&R
%: ------- -------
%: (PvQ)&R P&RvQ&R P&RvQ&R
%: ------- ---------------
%: PvQ P&RvQ&R
%: ----------------1
%: P&RvQ&R
%:
%: ^distr-weird-1
%:
%:
%: P,(PvQ)&R|-P P,(PvQ)&R|-R Q,(PvQ)&R|-Q Q,(PvQ)&R|-R
%: -------------------------- --------------------------
%: P,(PvQ)&R|-P&R Q,(PvQ)&R|-Q&R
%: ================== ==================
%: P,(PvQ)&R|-P&RvQ&R Q,(PvQ)&R|-P&RvQ&R
%: ---------------------- ------------------
%: P|-((PvQ)&R)⊃(P&RvQ&R) Q|-((PvQ)&R)⊃(P&RvQ&R)
%: --------------------------------------------------
%: PvQ|-((PvQ)&R)⊃(P&RvQ&R)
%: ==========================
%: PvQ&R|-((PvQ)&R)⊃(P&RvQ&R)
%:
%: ^distr-weird-2
%:
$$\ded{distr-weird-1}$$
$$\ded{distr-weird-2}$$
%*
--]]
-- Local Variables:
-- coding: raw-text-unix
-- modes: (fundamental-mode lua-mode latex-mode)
-- End: