% demo %------------------------------------------------- /* ?- [swf_d]. ---------------------------------------- Arrovian possibility theorem by prolog (swf_d.pl, 5-7,21,25 Feb, 2-6 Mar 2006) ---------------------------------------- % swf_d compiled 0.03 sec, -164 bytes Yes ?- gen_swf(1),display_swf(bin). step(1):54:items are undifined yet. row=1;[r(1), ----, ----, ----, ----, ----] row=2;[----, r(2), ----, ----, ----, ----] row=3;[----, ----, r(3), ----, ----, ----] row=4;[----, ----, ----, r(4), ----, ----] row=5;[----, ----, ----, ----, r(5), ----] row=6;[----, ----, ----, ----, ----, r(6)] Yes ?- delegate(J,X,A),display_swf(bin). put decisiveness on : (b, c) at : (2, 1) to :2 row=1;[r(1), ----, ----, ----, ----, ----] row=2;[r(1), r(2), ----, ----, ----, ----] row=3;[----, ----, r(3), ----, ----, ----] row=4;[----, ----, ----, r(4), ----, ----] row=5;[----, ----, ----, ----, r(5), ----] row=6;[----, ----, ----, ----, ----, r(6)] J = 2 X = b, c A = 2, 1 Yes ?- gen_swf(K),display_swf(bin). step(2):45:items are undifined yet. row=1;[r(1), ----, ----, ----, ----, ----] row=2;[r(1), r(2), ----, ----, ----, ----] row=3;[----, ----, r(3), ----, ----, ----] row=4;[----, ----, ----, r(4), ----, ----] row=5;[----, ----, ----, ----, r(5), ----] row=6;[----, ----, ----, r(4), ----, r(6)] K = 2 Yes ?- gen_swf(K),display_swf(bin). step(3):27:items are undifined yet. row=1;[r(1), ----, r(3), ----, ----, ----] row=2;[r(1), r(2), r(3), ----, ----, ----] row=3;[----, ----, r(3), ----, ----, ----] row=4;[----, ----, r(3), r(4), ----, ----] row=5;[r(1), r(2), r(3), r(4), r(5), r(6)] row=6;[----, ----, r(3), r(4), ----, r(6)] K = 3 Yes ?- gen_swf(K),display_swf(bin). step(4):9:items are undifined yet. row=1;[r(1), ----, r(3), r(4), ----, ----] row=2;[r(1), r(2), r(3), r(4), r(5), r(6)] row=3;[r(1), ----, r(3), r(4), ----, ----] row=4;[r(1), ----, r(3), r(4), ----, ----] row=5;[r(1), r(2), r(3), r(4), r(5), r(6)] row=6;[r(1), r(2), r(3), r(4), r(5), r(6)] K = 4 Yes ?- gen_swf(K),display_swf(bin). step(5):0:items are undifined yet. row=1;[r(1), r(2), r(3), r(4), r(5), r(6)] row=2;[r(1), r(2), r(3), r(4), r(5), r(6)] row=3;[r(1), r(2), r(3), r(4), r(5), r(6)] row=4;[r(1), r(2), r(3), r(4), r(5), r(6)] row=5;[r(1), r(2), r(3), r(4), r(5), r(6)] row=6;[r(1), r(2), r(3), r(4), r(5), r(6)] K = 5 Yes ?- ?- gen_swf(1),display_swf(XY,bin). step(1):54:items are undifined yet. row=1;[a, a, -, -, a, -] row=2;[a, a, -, -, a, -] row=3;[-, -, b, b, -, b] row=4;[-, -, b, b, -, b] row=5;[a, a, -, -, a, -] row=6;[-, -, b, b, -, b] XY = a, b ; row=1;[a, a, a, -, -, -] row=2;[a, a, a, -, -, -] row=3;[a, a, a, -, -, -] row=4;[-, -, -, c, c, c] row=5;[-, -, -, c, c, c] row=6;[-, -, -, c, c, c] XY = a, c ; row=1;[b, -, b, b, -, -] row=2;[-, c, -, -, c, c] row=3;[b, -, b, b, -, -] row=4;[b, -, b, b, -, -] row=5;[-, c, -, -, c, c] row=6;[-, c, -, -, c, c] XY = b, c Yes ?- delegate(J,X,A),display_swf(XY,bin). put decisiveness on : (b, c) at : (2, 1) to :2 row=1;[a, a, -, -, a, -] row=2;[a, a, -, -, a, -] row=3;[-, -, b, b, -, b] row=4;[-, -, b, b, -, b] row=5;[a, a, -, -, a, -] row=6;[-, -, b, b, -, b] J = 2 X = b, c A = 2, 1 XY = a, b ; row=1;[a, a, a, -, -, -] row=2;[a, a, a, -, -, -] row=3;[a, a, a, -, -, -] row=4;[-, -, -, c, c, c] row=5;[-, -, -, c, c, c] row=6;[-, -, -, c, c, c] J = 2 X = b, c A = 2, 1 XY = a, c ; row=1;[b, -, b, b, -, -] row=2;[b, c, -, -, c, c] row=3;[b, -, b, b, -, -] row=4;[b, -, b, b, -, -] row=5;[-, c, -, -, c, c] row=6;[-, c, -, -, c, c] J = 2 X = b, c A = 2, 1 XY = b, c Yes ?- gen_swf(K),display_swf(XY,bin). step(2):45:items are undifined yet. row=1;[a, a, -, -, a, -] row=2;[a, a, -, -, a, -] row=3;[-, -, b, b, -, b] row=4;[-, -, b, b, -, b] row=5;[a, a, -, -, a, -] row=6;[-, -, b, b, -, b] K = 2 XY = a, b ; row=1;[a, a, a, -, -, -] row=2;[a, a, a, -, -, -] row=3;[a, a, a, -, -, -] row=4;[-, -, -, c, c, c] row=5;[-, -, -, c, c, c] row=6;[-, -, -, c, c, c] K = 2 XY = a, c ; row=1;[b, -, b, b, -, -] row=2;[b, c, b, b, c, c] row=3;[b, -, b, b, -, -] row=4;[b, -, b, b, -, -] row=5;[b, c, b, b, c, c] row=6;[b, c, b, b, c, c] K = 2 XY = b, c ; No ?- gen_swf(K),display_swf(XY,bin). step(3):27:items are undifined yet. row=1;[a, a, b, b, a, b] row=2;[a, a, b, b, a, b] row=3;[-, -, b, b, -, b] row=4;[-, -, b, b, -, b] row=5;[a, a, b, b, a, b] row=6;[-, -, b, b, -, b] K = 3 XY = a, b ; row=1;[a, a, a, -, -, -] row=2;[a, a, a, -, -, -] row=3;[a, a, a, -, -, -] row=4;[a, a, a, c, c, c] row=5;[a, a, a, c, c, c] row=6;[a, a, a, c, c, c] K = 3 XY = a, c ; row=1;[b, -, b, b, -, -] row=2;[b, c, b, b, c, c] row=3;[b, -, b, b, -, -] row=4;[b, -, b, b, -, -] row=5;[b, c, b, b, c, c] row=6;[b, c, b, b, c, c] K = 3 XY = b, c ; No ?- gen_swf(K),display_swf(XY,bin). step(4):9:items are undifined yet. row=1;[a, a, b, b, a, b] row=2;[a, a, b, b, a, b] row=3;[a, a, b, b, a, b] row=4;[a, a, b, b, a, b] row=5;[a, a, b, b, a, b] row=6;[a, a, b, b, a, b] K = 4 XY = a, b ; row=1;[a, a, a, c, c, c] row=2;[a, a, a, c, c, c] row=3;[a, a, a, c, c, c] row=4;[a, a, a, c, c, c] row=5;[a, a, a, c, c, c] row=6;[a, a, a, c, c, c] K = 4 XY = a, c ; row=1;[b, -, b, b, -, -] row=2;[b, c, b, b, c, c] row=3;[b, -, b, b, -, -] row=4;[b, -, b, b, -, -] row=5;[b, c, b, b, c, c] row=6;[b, c, b, b, c, c] K = 4 XY = b, c ; No ?- gen_swf(K),display_swf(XY,bin). step(5):0:items are undifined yet. row=1;[a, a, b, b, a, b] row=2;[a, a, b, b, a, b] row=3;[a, a, b, b, a, b] row=4;[a, a, b, b, a, b] row=5;[a, a, b, b, a, b] row=6;[a, a, b, b, a, b] K = 5 XY = a, b ; row=1;[a, a, a, c, c, c] row=2;[a, a, a, c, c, c] row=3;[a, a, a, c, c, c] row=4;[a, a, a, c, c, c] row=5;[a, a, a, c, c, c] row=6;[a, a, a, c, c, c] K = 5 XY = a, c ; row=1;[b, c, b, b, c, c] row=2;[b, c, b, b, c, c] row=3;[b, c, b, b, c, c] row=4;[b, c, b, b, c, c] row=5;[b, c, b, b, c, c] row=6;[b, c, b, b, c, c] K = 5 XY = b, c ; No ?- */