Approach to Boolean Calculus

Daizhan Cheng, Yin Zhao, Xiangru Xu

Abstract— Using semi-tensor product of matrices and the its applications to the topological structure, controlability, matrix expression of logic, formulas for calculating Boolean observability, stabilization, disturbance decoupling, etc. of derivatives are obtained. Using this form, the solvability of Boolean (control) networks. Boolean algebraic equations and Boolean differential equations is considered. Its application to fault detection of combinational The key point of this approach is to convert a logical circuits is investigated. Then we define the Boolean integrals expression into an algebraic form, and then the known as the inverse of the Boolean derivative in certain sense. methods for analyzing conventional static and/or dynamic Three kinds of integrals are proposed. The inverse of a partial systems are applicable to logical (dynamic) systems. This derivative with respect to xi is called the ith primitive function. new technique is the crucial tool for the investigation in this The inverse of a differential form is called the indefinite integral. A necessary and sufficient condition for the existence of the paper. indefinite integral is proved. Using the unique indefinite integral The first interesting topic is the calculation of Boolean (up to equivalence), definite integral is also defined. derivatives [35], [18]. Using semi-tensor product, [19] at- Simply computable formulas are provided for solving each kind tempts to provide the general formulas for calculating the of integrals. Boolean derivatives. Following [19], we provide a formula I.INTRODUCTION for calculating the structure matrix of a Boolean derivative. It is essentially equivalent to the fast implementation presented Right after G. Boole invented an algebra in 1847, which by [1], which is coined the jth partial derivative transform, is lately called the , an effort rose, which using [2]. But our vector form is attempts to establish Boolean analogues of concepts and convenient in later use. results from Calculus. The first version of Boolean Dif- Then the Boolean algebraic and differential equations are ferential Calculus was proposed by Daniell in 1917 [14]. investigated. Algorithms are provided to solve the equations. Some forty years later after Shannon proposed the switching As an application, the fault detection of combinational cir- algebra in the evaluation of switching circuit designing, cuits is investigated. it was discovered that the partial derivatives of Boolean Another interesting topic is the counterpart of the Boolean functions are particularly useful in switching theory [23], derivative, that is, the the Boolean integral. There are much [3]. Since then, the Boolean derivative has been developed less literatures on Boolean integral. [31] provides some quickly, both in view of applications and for its own algebraic interesting insights for Boolean integral. But it seems to the interest [22], [5], [34], [27], [30], [15]. author that there is no convergent definition yet. There are several definitions on Boolean derivative, we Using the formula for calculating Boolean derivatives, we adopt the common definition of Boolean derivative, which formulate the Boolean integral, as the inverse of the Boolean can be found, for instance, in [33], [29]. A general definition derivative. Three kinds of the inverses of Boolean derivatives and basic properties and some applications can be found are defined. The inverse of a partial derivative, is called the in [29]. The fundamental requirements and satisfactory of primitive function; the inverse of a differential form, called Boolean derivatives are discussed in[25]. the indefinite integral. Using the derivative algorithm, the Many applications of Boolean derivatives have been re- indefinite integral can be calculated easily. The uniqueness ported. The applications include control of Boolean networks of the indefinite integral (up to a complement equivalence) is [20], synthesis of discrete event systems [26], logical circuit proved. Using this uniqueness, the evaluation of the indefinite analysis [5], [19], asynchronous circuit design [28], image integral with an integral function over a given reagin, which edge detection [2], selection probabilities of stack filters [16], is called the definite integral, is defined. Easily computable cellular automata and finite state machine [21], [32], etc. formulas are also provided for each kind of integrals. These evidence that Boolean derivative is a useful tool. The rest of this paper is organized as follows: Section 2 Recently, a new matrix product, called the semi-tensor consists of some preliminaries which provide fundamental product, has been proposed and it has been successfully tools for later investigation, including the semi-tensor prod- applied to the analysis and control of Boolean networks uct of matrices, the matrix expression of logical equations, [13]. We also refer to [6], [7], [8], [9], [10], [11], [12] for and the Boolean product of Boolean matrices. Section 3 This work was Supported partly by NNSF 61074112, 60736022, and discusses the calculation of Boolean derivatives. Some easily 60821091 of China. computable formulas are developed. Section 4 is devoted to Daizhan Cheng, Yin Zhao and Xiangru Xu are with Key Lab. solving Boolean algebraic equations and Boolean differential of Systems and Control, AMSS, Chinese Academy of Sciences, Beijing 100190, P.R.China. E-mail: [email protected], equations. After providing general algorithms for solving [email protected], [email protected] them, the application to fault detection of combinational TABLE I circuits is investigated. The Boolean integral is proposed in STRUCTURE MATRICES OF OPERATORS Section 5. Three kinds of Boolean integrals are built and the related formulas are also provided to calculate them. Operator Structure Matrix Some examples are presented to illustrate the concepts and ¬ M¬ = δ2[2 1] ∧ M = δ [1 2 2 2] algorithms. Section 6 is a brief conclusion. ∧ 2 ∨ M∨ = δ2[1 1 1 2] → M = δ [1 2 1 1] II.PRELIMINARIES → 2 ↔ M↔ = δ2[1 2 2 1] First, we introduce some notations. ∨¯(or ⊕) M⊕ = δ2[2 1 1 2]

• Mm×n: the set of m × n real matrices. • 1 (0 ): a matrix in M with all entries equal m×n m×n m×n k k 1 (correspondingly, 0). D → D becomes a function f : ∆ → ∆, (or equivalently, If no ambiguity is possible, we simply use 1 for 1 f : ∆2k → ∆). n n×n k T Theorem 2.4: [13] Let f : D → D. Then there exists 0 for 0n, or 0n , or 0m×n. M ∈ L k • D = {1, 0}. a unique f 2×2 , called the structure k matrix of f, such that in vector form we have • δn is the k-th column of the In. 1 n • ∆n := {δn, ··· , δn}. For compactness, ∆ := ∆2. f(x1, ··· , xk) = Mf x, (2) • Coli(A) (Rowi(A)) is the i-th column (i-th row) of a k matrix A, the set of all the columns (rows) of A is where x = ni=1xi ∈ ∆2k . denoted by Col(A) (Row(A)). For convenience, we give the structure matrices of some commonly used logical operators in Table I. • A matrix L ∈ Mn×m is called a logical matrix if its Remark 2.5: Let M ∈ L k be the structure matrix of columns, Col(M) ⊂ ∆n. f 2×2 f : Dk → D. Then Row (M ) is the truth table of f (in row The set of n × m logical matrices is denoted by Ln×m. 1 f form) and Row (M ) = ¬ Row (M ). We simply denote • Let L ∈ Ln×m. Then 2 f 1 f T i1 i2 im mf := Row (Mf ). L = [δn , δn , ··· , δn ]. 1 Finally, we need a lemma, which is useful in the sequel. For the sake of briefness, it is denoted as Lemma 2.6: [13] m n L = δn[i1, i2, ··· , im]. 1) Let x ∈ R and y ∈ R be two column vectors. Then

• A matrix A = (ai,j) ∈ Mm×n is called a Boolean W[m,n]xy = yx. (3) matrix if its entries ai,j ∈ D. The set of m×n Boolean 2) Let x ∈ Rt and A is a given matrix. Then matrices is denoted by Bm×n. • Let A = (ai,j),B = (bi,j) ∈ Bm×n. Then ¬A = xA = (It ⊗ A)x. (4) (¬ai,j); and A ∧ B = (ai,j ∧ bi,j), etc. k 3) Let x = ni=1xi. Then • A swap matrix W[n,m] ∈ Mmn×mn is designed to swap two vector factors in their “product”. We refer 2 2k x = Mr x, (5) to [9] or [13] for its definition and properties, and to the following (3) for its basic function. where n 1 2 n Mr := diag[δn δn ··· δn]. Definition 2.1: [9], [13] Let M ∈ Mm×n and N ∈ A Boolean algebra on D is a quadruple (D, +B, ×B, ¬). Mp×q. The semi-tensor product of matrices, denoted by We refer to [24] for an elementary definition. For our M n N, is defined as purpose, we only consider Galois algebra in which + = ⊕   B M n N := M ⊗ Is/n N ⊗ Is/p , (1) and ×B = ∧. We firstly define the Boolean product of where s = lcm{n, p} is the least common multiple of n and matrices under such algebra. Definition 2.7: For a Boolean algebra B = (D, ⊕, ∧, ¬), p, ⊗ is the Kronecher product of matrices. Remark 2.2: Throughout this paper, unless else product we define symbol is used, the matrix product is assumed to be semi- 1) The Boolean product of A = (ai,j) ∈ Bm×n and B = tensor product, which contains the conventional matrix prod- (bi,j) ∈ Bn×s is defined as uct as its particular case when n = p. Hence, the symbol n A nB B := (ci,j) ∈ Bm×s, (6) can be omitted. We do this in the sequel. Since all the product properties of the conventional matrix product remain correct, where we can perform the semi-tensor product as conventional ci,j = ai,1 ∧ b1,j ⊕ ai,2 ∧ b2,j ⊕ · · · ⊕ ai,n ∧ bn,j. product without worrying about the dimensions. Definition 2.3: A k-ary logical function (or operator) is 2) The Boolean semi-tensor product of A = (ai,j) ∈ k a mapping f : D → D. It is commonly expressed as Bm×n and B = (bi,j) ∈ Bp×q is defined as f(x1, ··· , xk), where xi ∈ D, i = 1, ··· , k.   1 A nB B = A ⊗ Is/n nB A ⊗ Is/p , (7) To use the matrix expression of logic, we identify 1 ∼ δ2 2 and 0 ∼ δ2. Under this vector form, a logical function f : where s = lcm(n, p). Note that (6) is a particular case of (7). 2) The following properties are immediate consequence of ∂2f ∂2f the definition. = . (14) ∂xi∂xj ∂xj∂xi Proposition 2.8: Assume A, B ∈ Bm×n, and C,D are of arbitrary dimensions. Then 3) 1) (Commutative Law) ∂(f ⊕ f ) ∂f ∂f 1 2 = 1 ⊕ 2 . (15) A ⊕ B = B ⊕ A. (8) ∂xi ∂xi ∂xi 4) 2) (Associative Law) ∂(f1f2) ∂f1 ∂f2 ∂f1 ∂f2 = f2 ⊕ f1 ⊕ . (16) A nB (C nB D) = (A nB C) nB D. (9) ∂xi ∂xi ∂xi ∂xi ∂xi 3) (Distributive Law) 5) Denote f¯ := ¬f, and x¯ := ¬x, then ∂f¯ ∂f ∂f ∂f (A ⊕ B) nB C = (A nB C) ⊕ (B nB C). (10) = , and = . (17) ∂xi ∂xi ∂x¯i ∂xi 4) Using the vector form of logical expression as introduced in Section 2, we can easily obtain the matrix expression of T T T [A nB B] = B nB A . (11) ∂ ∂x , denoted by M∂if . Denote by Mf the structure matrix We give a simple example to depict it. i n of f and x := ni=1xi. Using (12), we have Example 2.9: Let ∂f   = M x = M x ⊕ M x ··· x¯ ··· x . 1 0 ∂if f f 1 i n (18)     ∂xi 1 1 1 1 0 1 A = ,B = ,C =   . Then using Lemma 2.6 to simplify the right hand side of 0 1 1 0 1 1 1 0 (18), it is easy to have that [19] 2n M = M M [I n ⊗ M (I i−1 ⊗ M )] M . (19) 0 1 ∂if ⊕ f 2 f 2 ¬ r   0 0 1 1 Then the higher order derivatives can also be calculated A ⊕ B = ,A nB C =   , 1 1 1 1 recursively [19]. 1 0 In the following we shall give an explicit form of the structure matrices of the derivatives. Consider the structure 1 0 1 1 1 0 matrix of g(x1, ··· , xn) := f(x1, ··· , x¯i, ··· , xn). Assume CT AT = nB 0 1 1 0 nB 1 1 the structure matrices of f and g are Mf and Mg respec-   tively. Using (4), we have 1 1 1 1 T = = (A nB C) . 1 1 1 0 Mgx = Mf x1 ··· M¬xi ··· xn = Mf (I2i−1 ⊗ M¬) x. III.BOOLEAN DERIVATIVES That is, The Boolean derivative in this paper is defined as [4] n Definition 3.1: Let f(x1, ··· , xn): D → D be a logical Mg = Mf (I2i−1 ⊗ M¬) . (20) function. The following proposition is obvious. 1) The Boolean derivative of f with respect to xi is defined as Proposition 3.3: Assume f(x1, ··· , xn) and ∂f g(x1, ··· , xn) have their truth tables as mf , mg ∈ B2n = f(x1, ··· , xi, ··· , xn) ⊕ f(x1, ··· , ¬xi, ··· , xn). respectively, and σ is a binary logical operator. Then ∂xi (12) mfσg = mf σmg. (21) 2) The higher order derivative of f with respect to xi1 , Using Remark 2.5 and Proposition 3.3, we have ··· , xi is defined recursively as k T T T m∂ f = mf ⊕ mf (I2i−1 ⊗ M¬). (22) ∂kf ∂  ∂   ∂f  i = ··· . Using the distributive law (10), we can calculate that ∂xi1 ··· ∂xik ∂xi1 ∂xi2 ∂xik (13) T T T m = m ⊕ m (I i−1 ⊗ M ) ∂if f f 2 ¬ We cite some basic properties in the following. T T = mf nB I2i ⊕ mf n⊕ (I2i−1 ⊗ M¬) Proposition 3.2: [33] T ∂f = mf nB (I2i ⊕ (I2i−1 ⊗ M¬)) 1) ∂x is independent of xi, and hence T i = mf nB (I2i−1 ⊗ (I2 ⊕ M¬)) T ∂2f = mf nB (I2i−1 ⊗ 12×2) . 2 = 0. ∂ xi We conclude that ∂kf Theorem 3.4: Let f(x1, ··· , xn) be a Boolean function Corollary 3.7: The truth table of ∂x ···∂x is (assume ∂f i1 ik with structure matrix Mf . Then The structure matrix of , ∂xi i1 > i2 > ··· > ik): denoted by M∂if , is ik ik−1 i1 m∂[i ,··· ,i ]f = Ψn−k+1Ψn−k+2 ··· Ψn mf . (30)  Row (M ) Ξi  k 1 1 f nB n Note that in (30) we require i1 > i2 > ··· > ik M∂if = i (23) ¬ Row1(Mf ) nB Ξn because otherwise, the later positions need to be adjusted. where For instance, say, i1 < i2, then after differentiate with respect i to xi the position for i2 becomes i2 − 1. So we need this Ξ = I i−1 ⊗ 1 . 1 n 2 2×2 order. Because of (14), we can assume this without loss of Hence, in vector form, generality. ∂f We give an example to show how to calculate the deriva- = M x, (24) tives. To this end, we introduce the MacLaurin expansion of ∂x ∂if i a Boolean function. n where x = ni=1xi. Moreover, Theorem 3.8: [3] A Boolean function f(x1, ··· , xn) has  i T its MacLaurin expansion as m∂if = Ξn mf . (25) ∂f n As we know that ∂x is independent of xi, so one may M ∂f i f(x1, ··· , xn) =f(0) ⊕ ∧ xi be interested in an alternative expression as ∂x i=1 i 0 2 ∂f M ∂ f = M∂ f x1 ··· xi−1xˆixi+1 ··· xn, (26) ⊕ ∧ x ∧ x ⊕ · · · ∂x [i] i1 i2 i ∂xi1 ∂xi2 0 1≤i1

m∂[1,2,3,4]f = [0]. The structure matrix of f is Note that evaluating the Boolean derivatives at 0 is equivalent M = δ [1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 to taking last element of its corresponding true table. Hence f 2 we havethe MacLaurin expansion of f(x) as 1 2 1 2 2 2 2 2 2 2 2 2 2 2 1 2]. f(x , x , x , x ) 1 2 3 4 Then, using Corollary 3.6, it is easy to obtain =1 ⊕ x1 ⊕ x2 ⊕ x1 ∧ x3 ⊕ x1 ∧ x4 ⊕ x2 ∧ x3 (32) M = δ [1 1 1 2 2 2 2 2 1 2 1 2 2 2 1 2] ⊕ x2 ∧ x4 ⊕ x1 ∧ x3 ∧ x4 ⊕ x2 ∧ x3 ∧ x4. ∂[3]f 2 M∂ f = δ2[2 1 2 2 2 2 2 2 2 2 2 2 2 2 1 2] IV. APPLICATION TO SOME RELATED PROBLEMS [4] M∂[3,4]f = δ2[2 1 2 2 2 2 1 2]. Firstly, we consider the solution of Boolean equations which involves a known Boolean function f(x1, ··· , xn) and By direct computation, the matrix form of (39) is its Boolean derivatives as  ∂f ∂kf  Mx = 1, Gj xi, f, , ··· , = cj, ∂xi ∂xi1 ··· ∂xik (33) 5 where x = ni=1xi, and j = 1, ··· , s, i = 1, ··· , n.

Using (27), solving the equations (33) is standard [13]. M = δ2[2 1 2 2 2 1 1 2 2 2 2 2 2 2 2 2 We describe it as an algorithm. 2 2 2 2 2 2 1 2 2 2 2 2 1 2 1 2]. Algorithm 4.1: • Step 1: Convert each logical equation into its algebraic form as Thus, the solution is

Mjx = cj, j = 1, ··· , s, (34)  i x = δ32|i = 2, 6, 7, 23, 29, 31 , where Mj ∈ L2×2n . • Step 2: Multiply all equations in (34) together to build or, in scalar form a system as {(1, 1, 1, 1, 0), (1, 1, 0, 0, 1), (1, 1, 0, 0, 0), Mx = c, (35) (0, 1, 0, 0, 1), (0, 0, 0, 1, 1), (0, 0, 0, 0, 1)} . n s where x = ni=1xi, c = ni=1ci, and M ∈ L2s×2n is Next, we consider the case that in equations (33), the constructed as Boolean function f(x1, ··· , xn) is unknown and with a set of the boundary conditions f(0) and some Boolean Col (M) = s Col (M ), i = 1, ··· , 2n. (36) i nj=1 i j derivatives of f at 0. Then we call this kind of equations the j Boolean differential equations (BDE). If a Boolean function • Step 3: Find all the solutions δ2n , which satisfies Colj(M) = c. g(x1, ··· , xn) satisfied (33) and the boundary conditions, it The fault detection of combinational circuits [17], [19] is is called a solution of the BDE with boundary conditions. a typical example of this problem. Let f(x1, ··· , xn) be a Example 4.3: Consider the following Boolean differential Boolean function describing a combinational circuit. the test equation with boundary condition F (0) = 0 vector set for double stuck-at faults xi(s−a−α), xj(s−a−β)  ∂F = ¬x1 ∧ ¬x4 is the set of solutions of ∂x3  2 2  ∂ F  = ¬(x2 ∨ x3) ∨ (x2 ∧ x3) α β ∂f α β ∂f α β ∂ f ∂x1∂x4 x¯i xj ⊕ xi x¯j ⊕ x¯i x¯j = 1, (37) ∂2F (40) ∂x ∂x ∂x ∂x = ¬x1 i j i j  ∂x2∂x4  2 2 1 0  ∂ F ∨ ∂ F = 1. where α, β ∈ D, and x := x, x :=x ¯. ∂x1∂x3 ∂x1∂x2 We give an example to depict it. Example 4.2: Assume a combinational circuit is described In vector form we have as [19] M = δ [2 2 2 2 2 1 2 1]  ∂[3]F 2 f(x1, ··· , x5)  M∂[1,4]F = δ2[1 2 2 1] =¬ {¬[x2 ∨ (¬x1 ∧ ¬x3)] ∨ ¬(x1 ∨ x5) (38) M = δ [2 2 1 1]  ∂[2,4]F 2 ∨¬(x4 ∨ x5) ∨ ¬[¬x3 ∨ (¬x2 ∧ ¬x4)]} .  2 1 Col(M∨M∂[1,3]F (I4 ⊗ M∂[1,2]F )(I2 ⊗ W[2])(I4 ⊗ Mr )) = {δ2}. Assume the first row of MF is [a1 a2 ··· a16], then Assume Z a1 ⊕ a3 = 0 a2 ⊕ a4 = 0 F (x1, z, x2, x3) = f(x1, x2, x3)d[2], a5 ⊕ a7 = 0 a6 ⊕ a8 = 0 a9 ⊕ a11 = 0 a10 ⊕ a12 = 1 with its truth table as a ⊕ a = 0 a ⊕ a = 1 T 13 15 14 16 mF = [a1 a2 ··· a16] . a1 ⊕ a2 ⊕ a9 ⊕ a10 = 1 a3 ⊕ a4 ⊕ a11 ⊕ a12 = 0 By (43), we can obtain a5 ⊕ a6 ⊕ a13 ⊕ a14 = 0 a7 ⊕ a8 ⊕ a15 ⊕ a16 = 1 T a1 ⊕ a2 ⊕ a5 ⊕ a6 = 0 a3 ⊕ a4 ⊕ a7 ⊕ a8 = 0 mF = [c1 c2 c3 c4 ¬c1 c2 ¬c3 c4 c5 c6 c7 c8 ¬c5 c6 c7 c8] , a9 ⊕ a10 ⊕ a13 ⊕ a14 = 1 a11 ⊕ a12 ⊕ a15 ⊕ a16 = 1 where ci, i = 1, ··· , 8 can be arbitrary Boolean numbers. a3 ⊕ a7 ⊕ a11 ⊕ a15 = 1 a4 ⊕ a8 ⊕ a12 ⊕ a16 = 0. B. Indefinite Integral Since F (0) = 0, we know that a16 = 0, then the solution is Definition 5.3: Given a logical function F (x1, ··· , xn). T mF = Row1(MF ) Its deferential form, denoted by dF , is defined as = [a b a b ∂F ∂F c a ⊕ ¬b ⊕ ¬c c a ⊕ ¬b ⊕ ¬c dF := dx1 + ··· + dxn. (44) ∂x1 ∂xn ¬b ⊕ ¬c a ⊕ ¬c ¬b ⊕ ¬c a ⊕ c Note that in (44) the symbol “ + ” is considered as only an a ⊕ ¬b 1 a ⊕ ¬b 0 ] adjacent notation, but not an operator. Definition 5.4: Given a set of functions where a, b and c can be arbitrary Boolean numbers fi(x1, ··· , xi−1, xˆi, xi+1 ··· , xn), i = 1, ··· , n. V. BOOLEAN INTEGRAL A function F (x1, ··· , xn) is called the indefinite integral of As we mentioned in the introduction, there is no com- the differential form monly used definition for Boolean integral. [31] provides a framework for Boolean integral. Unfortunately, the Boolean dh = f1dx1 + f2dx2 + ··· + fndxn derivative used in [31] is different from the standard one, and (or simply, integral of {f1, ··· , fn}), if hence the integral is in-consistent with the aforementioned ∂F Boolean derivative. Moreover, the computation problem has = fi, i = 1, ··· , n. (45) ∂xi not been solved yet there. Note that according to equation (17) one sees that if F is In the following we define the Boolean integrals in the an indefinite integral of dh, then so is F¯. sense that they are precisely the inverse of the Boolean Next, we consider when the indefinite integral exists. derivatives. Theorem 5.5: Consider a differential form

A. Primitive Function dh = f1dx1 + f2dx2 + ··· + fndxn. First, we define primitive function. There exists at least a pair of complemented indefinite Definition 5.1: Given a Boolean function f(x1, ··· , xn). integrals, if and only if F (x , ··· , x , z, x , ··· , x ) is called the ith primitive 1 i−1 i n ∂f ∂f function of f(x) (or the ith partial integral of f(x)) , denoted i = j , 1 ≤ i < j ≤ n. (46) ∂xj ∂xi by Proof. Necessity is trivial. We prove the sufficiency. Using Z {fi|i = 1, ··· , n}, we can calculate f(x1, ··· , xn)d[i] = F (x1, ··· , xi−1, z, xi, ··· , xn), ∂fi ∂fj (41) = , 1 ≤ i < j ≤ n. ∂xj ∂xi if Similarly, we have third order cross derivatives as ∂F 2 2 2 = f(x , ··· , x ). (42) ∂ fi ∂ fj ∂ fk ∂z 1 n = = , In the light of Corollary 3.5, the problem becomes solving ∂xj∂xk ∂xi∂xk ∂xi∂xj the equation and even higher order cross derivatives. Using the obtained partial derivatives and following the form of MacLaurin Ψi m = m . (43) n+1 F f expansion we can construct n We give an example to demonstrate this. M Example 5.2: Assume f(x1, x2, x3) = x3 ∧ (x1 ∨ (x2 ↔ F (x1, ··· , xn) =c ⊕ fi|0 ∧ xi x )). Find i=1 3 Z M ∂fi1 f(x1, x2, x3)d[2]. ⊕ ∧ xi1 ∧ xi2 ⊕ · · · ∂xi2 0 1≤i1