GATE_2

index · ← GATE_1 · GATE_3 →
:: Correctness of Binary Counter Circuits
::  by Yuguang Yang , Wasaki Katsumi , Yasushi Fuwa and Yatsuka Nakamura
::
:: Received March 13, 1999
:: Copyright (c) 1999-2026 Association of Mizar Users
::           (Stowarzyszenie Uzytkownikow Mizara, Bialystok, Poland).
:: This code can be distributed under the GNU General Public Licence
:: version 3.0 or later, or the Creative Commons Attribution-ShareAlike
:: License version 3.0 or later, subject to the binding interpretation
:: detailed in file COPYING.interpretation.
:: See COPYING.GPL and COPYING.CC-BY-SA for the full text of these
:: licenses, or see http://www.gnu.org/licenses/gpl.html and
:: http://creativecommons.org/licenses/by-sa/3.0/.

environ

 vocabularies XBOOLE_0, GATE_1;
 notations XBOOLE_0, GATE_1;
 constructors XBOOLE_0, GATE_1;
 registrations GATE_1;
 requirements BOOLE;
 theorems GATE_1;

begin :: Correctness of Binary Counter Circuits

reserve a,b,c,d for set;

::Correctness of 3-bit binary counter without reset input
::state transition: s0 (000) -> s1 (001)-> s2 (010) -> ... ->s7 (111) -> s0 (000).

theorem
  for s0,s1,s2,s3,s4,s5,s6,s7,ns0,ns1,ns2,ns3,ns4,ns5,ns6,ns7,q1,q2,q3,
nq1, nq2,nq3 being set holds (s0 is non empty iff AND3(NOT1 q3,NOT1 q2,NOT1 q1)
is not empty)& (s1 is non empty iff AND3(NOT1 q3,NOT1 q2,q1) is not empty)& (s2
  is non empty iff AND3(NOT1 q3,q2,NOT1 q1) is not empty)& (s3 is non empty iff
AND3(NOT1 q3,q2,q1) is not empty)& (s4 is non empty iff AND3(q3,NOT1 q2,NOT1 q1
) is not empty)& (s5 is non empty iff AND3(q3,NOT1 q2,q1) is not empty)& (s6 is
non empty iff AND3(q3,q2,NOT1 q1) is not empty)& (s7 is non empty iff AND3(q3,
q2,q1) is not empty)& (ns0 is non empty iff AND3(NOT1 nq3,NOT1 nq2,NOT1 nq1) is
not empty)& (ns1 is non empty iff AND3(NOT1 nq3,NOT1 nq2,nq1) is not empty)& (
  ns2 is non empty iff AND3(NOT1 nq3,nq2,NOT1 nq1) is not empty)& (ns3 is non
empty iff AND3(NOT1 nq3,nq2,nq1) is not empty)& (ns4 is non empty iff AND3(nq3,
NOT1 nq2,NOT1 nq1) is not empty)& (ns5 is non empty iff AND3(nq3,NOT1 nq2,nq1)
is not empty)& (ns6 is non empty iff AND3(nq3,nq2,NOT1 nq1) is not empty)& (ns7
  is non empty iff AND3(nq3,nq2,nq1) is not empty)& (nq1 is non empty iff (NOT1
q1) is not empty)& (nq2 is non empty iff XOR2(q1,q2) is not empty)& (nq3 is non
empty iff OR2(AND2(q3, NOT1 q1), AND2(q1, XOR2(q2,q3))) is not empty) implies (
ns1 is non empty iff s0 is non empty)& (ns2 is non empty iff s1 is non empty)&
(ns3 is non empty iff s2 is non empty)& (ns4 is non empty iff s3 is non empty)&
(ns5 is non empty iff s4 is non empty)& (ns6 is non empty iff s5 is non empty)&
(ns7 is non empty iff s6 is non empty)& (ns0 is non empty iff s7 is non empty)
proof
  let s0,s1,s2,s3,s4,s5,s6,s7,ns0,ns1,ns2,ns3,ns4,ns5,ns6,ns7,q1,q2,q3,nq1,
  nq2,nq3 be set;
thus (s0 is non empty iff AND3(NOT1 q3,NOT1 q2,NOT1 q1)
is not empty)& (s1 is non empty iff AND3(NOT1 q3,NOT1 q2,q1) is not empty)& (s2
  is non empty iff AND3(NOT1 q3,q2,NOT1 q1) is not empty)& (s3 is non empty iff
AND3(NOT1 q3,q2,q1) is not empty)& (s4 is non empty iff AND3(q3,NOT1 q2,NOT1 q1
) is not empty)& (s5 is non empty iff AND3(q3,NOT1 q2,q1) is not empty)& (s6 is
non empty iff AND3(q3,q2,NOT1 q1) is not empty)& (s7 is non empty iff AND3(q3,
q2,q1) is not empty)& (ns0 is non empty iff AND3(NOT1 nq3,NOT1 nq2,NOT1 nq1) is
not empty)& (ns1 is non empty iff AND3(NOT1 nq3,NOT1 nq2,nq1) is not empty)& (
  ns2 is non empty iff AND3(NOT1 nq3,nq2,NOT1 nq1) is not empty)& (ns3 is non
empty iff AND3(NOT1 nq3,nq2,nq1) is not empty)& (ns4 is non empty iff AND3(nq3,
NOT1 nq2,NOT1 nq1) is not empty)& (ns5 is non empty iff AND3(nq3,NOT1 nq2,nq1)
is not empty)& (ns6 is non empty iff AND3(nq3,nq2,NOT1 nq1) is not empty)& (ns7
  is non empty iff AND3(nq3,nq2,nq1) is not empty)& (nq1 is non empty iff (NOT1
q1) is not empty)& (nq2 is non empty iff XOR2(q1,q2) is not empty)& (nq3 is non
empty iff OR2(AND2(q3, NOT1 q1), AND2(q1, XOR2(q2,q3))) is not empty) implies (
ns1 is non empty iff s0 is non empty)& (ns2 is non empty iff s1 is non empty)&
(ns3 is non empty iff s2 is non empty)& (ns4 is non empty iff s3 is non empty)&
(ns5 is non empty iff s4 is non empty)& (ns6 is non empty iff s5 is non empty)&
(ns7 is non empty iff s6 is non empty)& (ns0 is non empty iff s7 is non empty)
proof
  assume that
A1: s0 is non empty iff AND3(NOT1 q3,NOT1 q2,NOT1 q1) is not empty and
A2: s1 is non empty iff AND3(NOT1 q3,NOT1 q2,q1) is not empty and
A3: s2 is non empty iff AND3(NOT1 q3,q2,NOT1 q1) is not empty and
A4: s3 is non empty iff AND3(NOT1 q3,q2,q1) is not empty and
A5: s4 is non empty iff AND3(q3,NOT1 q2,NOT1 q1) is not empty and
A6: s5 is non empty iff AND3(q3,NOT1 q2,q1) is not empty and
A7: s6 is non empty iff AND3(q3,q2,NOT1 q1) is not empty and
A8: s7 is non empty iff AND3(q3,q2,q1) is not empty and
A9: ns0 is non empty iff AND3(NOT1 nq3,NOT1 nq2,NOT1 nq1) is not empty and
A10: ns1 is non empty iff AND3(NOT1 nq3,NOT1 nq2,nq1) is not empty and
A11: ns2 is non empty iff AND3(NOT1 nq3,nq2,NOT1 nq1) is not empty and
A12: ns3 is non empty iff AND3(NOT1 nq3,nq2,nq1) is not empty and
A13: ns4 is non empty iff AND3(nq3,NOT1 nq2,NOT1 nq1) is not empty and
A14: ns5 is non empty iff AND3(nq3,NOT1 nq2,nq1) is not empty and
A15: ns6 is non empty iff AND3(nq3,nq2,NOT1 nq1) is not empty and
A16: ns7 is non empty iff AND3(nq3,nq2,nq1) is not empty and
A17: ( nq1 is non empty iff NOT1 q1 is not empty)&( nq2 is non empty iff
  XOR2(q1,q2) is not empty) and
A18: nq3 is non empty iff OR2(AND2(q3, NOT1 q1), AND2(q1, XOR2(q2,q3)))
  is not empty;
  ns1 is non empty iff NOT1 nq3 is non empty & not XOR2(q1,q2) is not
  empty & not q1 is non empty by A10,A17;
  then ns1 is non empty iff (not q3 is not empty or not NOT1 q1 is not empty)
& (not q1 is not empty or not XOR2(q2,q3) is not empty) & not q2 is non empty &
  not q1 is non empty by A18;
  hence ns1 is non empty iff s0 is non empty by A1;
  ns2 is non empty iff not AND2(q3, NOT1 q1) is non empty & not AND2(q1,
  XOR2(q2,q3)) is non empty & not q2 is non empty & q1 is non empty by A11,A17
,A18,GATE_1:6;
  then ns2 is non empty iff (not q3 is non empty or q1 is non empty) & not q3
  is non empty & not q2 is non empty & q1 is non empty;
  hence ns2 is non empty iff s1 is non empty by A2;
  ns3 is non empty iff NOT1 nq3 is non empty & XOR2(q1,q2) is non empty &
  not q1 is non empty by A12,A17;
  then ns3 is non empty iff (not q3 is non empty or not NOT1 q1 is non empty)
& (not q1 is non empty or not XOR2(q2,q3) is non empty) & q2 is non empty & not
  q1 is non empty by A18;
  hence ns3 is non empty iff s2 is non empty by A3;
  ns4 is non empty iff (AND2(q3, NOT1 q1) is non empty or AND2(q1, XOR2(
q2,q3)) is non empty) & q2 is non empty & q1 is non empty by A13,A17,A18,
GATE_1:6;
  then ns4 is non empty iff not q3 is non empty & q2 is non empty & q1 is non
  empty;
  hence ns4 is non empty iff s3 is non empty by A4;
  ns5 is non empty iff nq3 is non empty & not XOR2(q1,q2) is non empty &
  not q1 is non empty by A14,A17;
  then ns5 is non empty iff (AND2(q3, NOT1 q1) is non empty or AND2(q1, XOR2(
  q2,q3)) is non empty) & not q2 is non empty & not q1 is non empty by A18;
  then ns5 is non empty iff q3 is non empty & NOT1 q2 is non empty & NOT1 q1
  is non empty;
  hence ns5 is non empty iff s4 is non empty by A5;
  ns6 is non empty iff (AND2(q3, NOT1 q1) is non empty or AND2(q1, XOR2(
  q2,q3)) is non empty) & not q2 is non empty & q1 is non empty by A15,A17,A18,
GATE_1:6;
  then ns6 is non empty iff q3 is non empty & not q2 is non empty & q1 is non
  empty;
  hence ns6 is non empty iff s5 is non empty by A6;
  ns7 is non empty iff nq3 is non empty & XOR2(q1,q2) is non empty & not
  q1 is non empty by A16,A17;
  then ns7 is non empty iff (AND2(q3, NOT1 q1) is non empty or AND2(q1, XOR2(
  q2,q3)) is non empty) & q2 is non empty & not q1 is non empty by A18;
  then
  ns7 is non empty iff q3 is non empty & q2 is non empty & NOT1 q1 is non
  empty;
  hence ns7 is non empty iff s6 is non empty by A7;
  ns0 is non empty iff not AND2(q3, NOT1 q1) is non empty & not AND2(q1,
  XOR2(q2,q3)) is non empty & q2 is non empty & q1 is non empty by A9,A17,A18,
GATE_1:6;
  then ns0 is non empty iff (not q3 is non empty or q1 is non empty) & q3 is
  non empty & q2 is non empty & q1 is non empty;
  hence thesis by A8;
end;
end;

theorem
  AND3(AND2(a,d),AND2(b,d),AND2(c,d)) is non empty iff AND2(AND3(a,b,c),
  d) is non empty
proof
  a is non empty & b is non empty & c is non empty & d is non empty iff
  AND3(a,b,c) is non empty & d is non empty;
  hence thesis;
end;

theorem
  (not AND2(a,b) is non empty iff OR2(NOT1 a, NOT1 b) is non empty)& (
OR2(a,b) is non empty & OR2(c,b) is non empty iff OR2(AND2(a,c),b) is non empty
) & (OR2(a,b) is non empty & OR2(c,b) is non empty & OR2(d,b) is non empty iff
OR2(AND3(a,c,d),b) is non empty)& (OR2(a,b) is non empty & (a is non empty iff
  c is non empty) implies OR2(c,b) is non empty )
proof
A1: OR2(a,b) is non empty & OR2(c,b) is non empty iff (a is non empty or b
  is non empty) & (c is non empty or b is non empty);
A2: OR2(a,b) is non empty & OR2(c,b) is non empty & OR2(d,b) is non empty
iff (a is non empty or b is non empty ) & (c is non empty or b is non empty ) &
  (d is non empty or b is non empty );
  not AND2(a,b) is non empty iff not (a is non empty & b is non empty);
  hence thesis by A1,A2;
end;

::Correctness of 3-bit binary counter with  reset input R
::initial state s*(xxx) -> s0(000) [reset]
::state transition: s0 (000) -> s1 (001)-> s2 (010) -> ... ->s7 (111) -> s0 (000).

theorem
  for s0,s1,s2,s3,s4,s5,s6,s7,ns0,ns1,ns2,ns3,ns4,ns5,ns6,ns7,q1,q2,q3,
  nq1, nq2,nq3,R being set holds (s0 is non empty iff AND3(NOT1 q3,NOT1 q2,NOT1
q1) is non empty)& (s1 is non empty iff AND3(NOT1 q3,NOT1 q2,q1) is non empty)&
  (s2 is non empty iff AND3(NOT1 q3,q2,NOT1 q1) is non empty)& (s3 is non empty
  iff AND3(NOT1 q3,q2,q1) is non empty)& (s4 is non empty iff AND3(q3,NOT1 q2,
NOT1 q1) is non empty)& (s5 is non empty iff AND3(q3,NOT1 q2,q1) is non empty)&
  (s6 is non empty iff AND3(q3,q2,NOT1 q1) is non empty)& (s7 is non empty iff
AND3(q3,q2,q1) is non empty)& (ns0 is non empty iff AND3(NOT1 nq3,NOT1 nq2,NOT1
  nq1) is non empty)& (ns1 is non empty iff AND3(NOT1 nq3,NOT1 nq2,nq1) is non
  empty)& (ns2 is non empty iff AND3(NOT1 nq3,nq2,NOT1 nq1) is non empty)& (ns3
  is non empty iff AND3(NOT1 nq3,nq2,nq1) is non empty)& (ns4 is non empty iff
AND3(nq3,NOT1 nq2,NOT1 nq1) is non empty)& (ns5 is non empty iff AND3(nq3,NOT1
  nq2,nq1) is non empty)& (ns6 is non empty iff AND3(nq3,nq2,NOT1 nq1) is non
  empty)& (ns7 is non empty iff AND3(nq3,nq2,nq1) is non empty)& (nq1 is non
empty iff AND2(NOT1 q1,R) is non empty)& (nq2 is non empty iff AND2(XOR2(q1,q2)
  ,R) is non empty)& (nq3 is non empty iff AND2(OR2(AND2(q3, NOT1 q1), AND2(q1,
XOR2(q2,q3))),R) is non empty) implies (ns1 is non empty iff AND2(s0,R) is non
  empty)& (ns2 is non empty iff AND2(s1,R) is non empty)& (ns3 is non empty iff
AND2(s2,R) is non empty)& (ns4 is non empty iff AND2(s3,R) is non empty)& (ns5
is non empty iff AND2(s4,R) is non empty)& (ns6 is non empty iff AND2(s5,R) is
  non empty)& (ns7 is non empty iff AND2(s6,R) is non empty)& (ns0 is non empty
  iff OR2(s7,NOT1 R) is non empty)
proof
  let s0,s1,s2,s3,s4,s5,s6,s7,ns0,ns1,ns2,ns3,ns4,ns5,ns6,ns7,q1,q2,q3,nq1,
  nq2,nq3,R be set;
thus (s0 is non empty iff AND3(NOT1 q3,NOT1 q2,NOT1
q1) is non empty)& (s1 is non empty iff AND3(NOT1 q3,NOT1 q2,q1) is non empty)&
  (s2 is non empty iff AND3(NOT1 q3,q2,NOT1 q1) is non empty)& (s3 is non empty
  iff AND3(NOT1 q3,q2,q1) is non empty)& (s4 is non empty iff AND3(q3,NOT1 q2,
NOT1 q1) is non empty)& (s5 is non empty iff AND3(q3,NOT1 q2,q1) is non empty)&
  (s6 is non empty iff AND3(q3,q2,NOT1 q1) is non empty)& (s7 is non empty iff
AND3(q3,q2,q1) is non empty)& (ns0 is non empty iff AND3(NOT1 nq3,NOT1 nq2,NOT1
  nq1) is non empty)& (ns1 is non empty iff AND3(NOT1 nq3,NOT1 nq2,nq1) is non
  empty)& (ns2 is non empty iff AND3(NOT1 nq3,nq2,NOT1 nq1) is non empty)& (ns3
  is non empty iff AND3(NOT1 nq3,nq2,nq1) is non empty)& (ns4 is non empty iff
AND3(nq3,NOT1 nq2,NOT1 nq1) is non empty)& (ns5 is non empty iff AND3(nq3,NOT1
  nq2,nq1) is non empty)& (ns6 is non empty iff AND3(nq3,nq2,NOT1 nq1) is non
  empty)& (ns7 is non empty iff AND3(nq3,nq2,nq1) is non empty)& (nq1 is non
empty iff AND2(NOT1 q1,R) is non empty)& (nq2 is non empty iff AND2(XOR2(q1,q2)
  ,R) is non empty)& (nq3 is non empty iff AND2(OR2(AND2(q3, NOT1 q1), AND2(q1,
XOR2(q2,q3))),R) is non empty) implies (ns1 is non empty iff AND2(s0,R) is non
  empty)& (ns2 is non empty iff AND2(s1,R) is non empty)& (ns3 is non empty iff
AND2(s2,R) is non empty)& (ns4 is non empty iff AND2(s3,R) is non empty)& (ns5
is non empty iff AND2(s4,R) is non empty)& (ns6 is non empty iff AND2(s5,R) is
  non empty)& (ns7 is non empty iff AND2(s6,R) is non empty)& (ns0 is non empty
  iff OR2(s7,NOT1 R) is non empty)
proof
  assume that
A1: s0 is non empty iff AND3(NOT1 q3,NOT1 q2,NOT1 q1) is non empty and
A2: s1 is non empty iff AND3(NOT1 q3,NOT1 q2,q1) is non empty and
A3: s2 is non empty iff AND3(NOT1 q3,q2,NOT1 q1) is non empty and
A4: s3 is non empty iff AND3(NOT1 q3,q2,q1) is non empty and
A5: s4 is non empty iff AND3(q3,NOT1 q2,NOT1 q1) is non empty and
A6: s5 is non empty iff AND3(q3,NOT1 q2,q1) is non empty and
A7: s6 is non empty iff AND3(q3,q2,NOT1 q1) is non empty and
A8: s7 is non empty iff AND3(q3,q2,q1) is non empty and
A9: ns0 is non empty iff AND3(NOT1 nq3,NOT1 nq2,NOT1 nq1) is non empty and
A10: ns1 is non empty iff AND3(NOT1 nq3,NOT1 nq2,nq1) is non empty and
A11: ns2 is non empty iff AND3(NOT1 nq3,nq2,NOT1 nq1) is non empty and
A12: ns3 is non empty iff AND3(NOT1 nq3,nq2,nq1) is non empty and
A13: ns4 is non empty iff AND3(nq3,NOT1 nq2,NOT1 nq1) is non empty and
A14: ns5 is non empty iff AND3(nq3,NOT1 nq2,nq1) is non empty and
A15: ns6 is non empty iff AND3(nq3,nq2,NOT1 nq1) is non empty and
A16: ns7 is non empty iff AND3(nq3,nq2,nq1) is non empty and
A17: nq1 is non empty iff AND2(NOT1 q1,R) is non empty and
A18: nq2 is non empty iff AND2(XOR2(q1,q2),R) is non empty and
A19: nq3 is non empty iff AND2(OR2(AND2(q3, NOT1 q1), AND2(q1, XOR2(q2,
  q3))),R) is non empty;
  ns1 is non empty iff not nq3 is non empty & ( not XOR2(q1,q2) is non
empty or not R is non empty) & not q1 is non empty & R is non empty by A10,A17
,A18;
  then ns1 is non empty iff (not q3 is non empty or not NOT1 q1 is non empty)
& (not q1 is non empty or not XOR2(q2,q3) is non empty) & not q2 is non empty &
  not q1 is non empty & R is non empty by A19;
  hence ns1 is non empty iff AND2(s0,R) is non empty by A1;
  ns2 is non empty iff not nq3 is non empty & XOR2(q1,q2) is non empty &
  R is non empty & (not NOT1 q1 is non empty or not R is non empty) by A11,A17
,A18;
  then ns2 is non empty iff not nq3 is non empty & XOR2(q1,q2) is non empty &
  R is non empty & q1 is non empty;
  then ns2 is non empty iff not AND2(q3, NOT1 q1) is non empty & not AND2(q1,
  XOR2(q2,q3)) is non empty & not q2 is non empty & q1 is non empty & R is non
  empty by A19;
  then ns2 is non empty iff (not q3 is non empty or q1 is non empty) & not q3
  is non empty & not q2 is non empty & q1 is non empty & R is non empty;
  hence ns2 is non empty iff AND2(s1,R) is non empty by A2;
  ns3 is non empty iff not nq3 is non empty & XOR2(q1,q2) is non empty &
  R is non empty & not q1 is non empty & R is non empty by A12,A17,A18;
  then ns3 is non empty iff (not q3 is non empty or not NOT1 q1 is non empty)
& (not q1 is non empty or not XOR2(q2,q3) is non empty) & q2 is non empty & not
  q1 is non empty & R is non empty by A19;
  hence ns3 is non empty iff AND2(s2,R) is non empty by A3;
  ns4 is non empty iff OR2(AND2(q3, NOT1 q1), AND2(q1, XOR2(q2,q3))) is
non empty & R is non empty & not nq2 is non empty & not AND2(NOT1 q1,R) is non
  empty by A13,A17,A19;
  then ns4 is non empty iff OR2(AND2(q3, NOT1 q1), AND2(q1, XOR2(q2,q3))) is
non empty & R is non empty & not XOR2(q1,q2) is non empty & q1 is non empty by
A18;
  then ns4 is non empty iff ( q3 is non empty & NOT1 q1 is non empty or q1 is
non empty & XOR2(q2,q3) is non empty ) & R is non empty & q2 is non empty & q1
  is non empty;
  then ns4 is non empty iff not q3 is non empty & R is non empty & q2 is non
  empty & q1 is non empty;
  hence ns4 is non empty iff AND2(s3,R) is non empty by A4;
  ns5 is non empty iff nq3 is non empty & (not XOR2(q1,q2) is non empty
  or not R is non empty) & not q1 is non empty & R is non empty by A14,A17,A18;
  then ns5 is non empty iff OR2(AND2(q3, NOT1 q1), AND2(q1, XOR2(q2,q3))) is
non empty & not q2 is non empty & not q1 is non empty & R is non empty by A19;
  then ns5 is non empty iff q3 is non empty & NOT1 q2 is non empty & NOT1 q1
  is non empty & R is non empty;
  hence ns5 is non empty iff AND2(s4,R) is non empty by A5;
  ns6 is non empty iff nq3 is non empty & XOR2(q1,q2) is non empty & R is
  non empty & (not NOT1 q1 is non empty or not R is non empty) by A15,A17,A18;
  then
  ns6 is non empty iff nq3 is non empty & XOR2(q1,q2) is non empty & R is
  non empty & q1 is non empty;
  then ns6 is non empty iff ( q3 is non empty & NOT1 q1 is non empty or q1 is
non empty & XOR2(q2,q3) is non empty ) & R is non empty & not q2 is non empty &
  q1 is non empty by A19;
  then ns6 is non empty iff q3 is non empty & R is non empty & not q2 is non
  empty & q1 is non empty;
  hence ns6 is non empty iff AND2(s5,R) is non empty by A6;
  ns7 is non empty iff nq3 is non empty & XOR2(q1,q2) is non empty & not
  q1 is non empty & R is non empty by A16,A17,A18;
  then ns7 is non empty iff OR2(AND2(q3, NOT1 q1), AND2(q1, XOR2(q2,q3))) is
  non empty & q2 is non empty & not q1 is non empty & R is non empty by A19;
  then
  ns7 is non empty iff q3 is non empty & q2 is non empty & NOT1 q1 is non
  empty & R is non empty;
  hence ns7 is non empty iff AND2(s6,R) is non empty by A7;
  ns0 is non empty iff q1 is non empty & not XOR2(q1,q2) is non empty &
not OR2(AND2(q3, NOT1 q1), AND2(q1, XOR2(q2,q3))) is non empty or not R is non
  empty by A9,A17,A18,A19;
  then ns0 is non empty iff q1 is non empty & q2 is non empty & not AND2(q3,
  NOT1 q1) is non empty & not XOR2(q2,q3) is non empty or not R is non empty;
  then ns0 is non empty iff q1 is non empty & q2 is non empty & q1 is non
  empty & q3 is non empty or not R is non empty;
  hence thesis by A8;
end;
end;