**Logička konjunkcija** ili **logičko „i"** je jedna od binarnih logičkih operacija čiji je rezultat „tačno" samo ako su oba operanda tačna, a u svim drugim slučajevima rezultat je „netačno".

Obilježavanje
-------------

Logička konjunkcija kao operacija se obično naziva logičkim „i", jer predstavlja analogiju sa govornim veznikom „i". Na primjer, ako se kaže „Učiću matematiku ako budem odmoran **i** ako budem imao vremena", to znači da će se učenje obaviti samo ukoliko se ispune oba uslova — ako bilo koji od uslova bude netačan ili oba budu netačna, učenje se neće obaviti.

U matematičkoj logici, logička konjunkcija se označava simbolom {\displaystyle \land }, pa se konjunkcija elemenata {\displaystyle p} i {\displaystyle q} obilježava na slijedeći način:

{\displaystyle p\land q}

Istinitosna tablica
-------------------

Logičko „i" se kao operacija najlakše i najpraktičnije definiše pomoću istinitosne tablice. Naime, u tablici se definiše rezultat operacije za sve kombinacije operanada. Pošto je operacija binarna (ima samo dva operanda), a operandi su logičke vrijednosti (tačno ili netačno), istinitosna tablica je kratka i lako razumljiva:

|  |  |  |
| --- | --- | --- |
| p | q | p ∧ q |
| ⊤ | ⊤ | ⊤ |
| ⊤ | ⊥ | ⊥ |
| ⊥ | ⊤ | ⊥ |
| ⊥ | ⊥ | ⊥ |

Iz tablice se lako vidi koji je rezultat operacije za svaku moguću kombinaciju parametara. Na primjer, u trećoj koloni piše „ako je {\displaystyle p} netačno a {\displaystyle q} tačno, onda je {\displaystyle p\land q} netačno.". U tzv. sabijenom obliku ova istinitosna tablica izgleda na slijedeći način:

|  |  |  |
| --- | --- | --- |
| ∧ | ⊤ | ⊥ |
| ⊤ | ⊤ | ⊥ |
| ⊥ | ⊥ | ⊥ |

Osobine
-------

Operacija konjunkcije ima slijedeće matematičke osobine:
1. Rezultat je isti bez obzira da li konjugujemo {\displaystyle a} sa {\displaystyle b} ili {\displaystyle b} sa {\displaystyle a}, tj. nije bitan raspored operanada:

{\displaystyle \forall p,q,p\land q=q\land p} (komutativnost)
2. Ako imamo više elemenata koje konjugujemo, rezultat je isti bez obzira na redoslijed izvršavanja konjugacije. Drugim riječima, nije bitno da li prvo konjugujemo prvi sa drugim, a onda rezultat sa trećim, ili prvo npr. drugi sa trećim, pa rezultat sa prvim:

{\displaystyle \forall p,q,r,(p\land q)\land r=p\land (q\land r)} (asocijativnost)
3. Ako se jedan element {\displaystyle p} konjuguje sa nekim složenim elementom koji predstavlja disjunkciju drugih elemenata, tada se element {\displaystyle p} može prvo konjugovati sa svakim od njih posebno, a onda nad ta dva rezultata izvršiti disjunkciju. Ista situacija važi i ako je složeni operand konjunkcija. Drugim riječima, važe slijedeće formule:

{\displaystyle \forall p,q,r,p\land (q\lor r)=(p\land q)\lor (p\land r)} (lijeva distributivnost po disjunkciji)
{\displaystyle \forall p,q,r,p\land (q\land r)=(p\land q)\land (p\land r)} (lijeva distributivnost po konjunkciji)
{\displaystyle \forall p,q,r,(q\lor r)\land p=(q\land p)\lor (r\land p)} (desna distributivnost po disjunkciji)
{\displaystyle \forall p,q,r,(q\land r)\land p=(q\land p)\land (r\land p)} (desna distributivnost po konjunkciji)
4. Bilo koji element, kad se konjuguje sa samim sobom, daje vrijednost koju ima i sam:

{\displaystyle \forall p,p\land p=p} (idempotencija)
5. Na kraju, logička konjugacija je i monotona funkcija u odnosu na relaciju logičke implikacije:

{\displaystyle \forall p,q,r,(p\Rightarrow q)\Rightarrow ((p\land r)\Rightarrow (q\land r))}

Računarstvo
-----------

### Programiranje

Konjunkcija se u programiranju koristi kao operator koji učestvuje u formiranju složenih uslova koji moraju biti zadovoljeni da bi se određena radnja obavila (grananje) ili ponavljala (petlja). Na primjer, može se napisati „ako je broj prost I ako je veći od 10, ispiši ga na ekran". U različitim programskim jezicima se koriste različite oznake za konjugaciju, pa se npr. u programskom jeziku -{C}- koristi oznaka `&&`, u Paskalu engleska riječ -{AND}- (što na srpskom znači „i"), itd. Slijedi programski kod za spomenuti primjer, pod pretpostavkom da je definisana funkcija `prost`:

```
if ( prost(b) && b > 10 ) /\* „ako je broj prost I ako je veći od 10" \*/
    printf( "%d\n", b );   /\* „odštampaj ga na ekran" \*/

```

Pored toga, konjugacija se koristi i u radu sa bitovima koji grade memorijske lokacije; bit sa vrijednošću `1` se posmatra kao logička vrijednost „tačno" (⊤) a bit sa vrijednošću `0` se posmatra kao logička vrijednost „netačno" (⊥), a rezultat operacije je broj koji je sačinjen od bitova koji predstavljaju rezultate konjugacije svih odgovarajućih bitova operanada. Tada se u -{C}--u koristi operator `&`, a iako u standardnom Paskalu ne postoji ovaj operator, razna proširenja ga definišu i označavaju isto kao i obični operator -{AND}-. Tako, ako imamo brojeve `p = 45` i `q = 56`, rezultat njihove binarne konjugacije je slijedeći:

{\displaystyle {\begin{alignedat}{2}p=45=&00101101\\q=56=&00111000\land \\&00101000=40\end{alignedat}}}

### Baze podataka

U bazama podataka, konjunkcija se često koristi kao operator koji učestvuje u građenju izraza koji određuje podatke na koje se određena naredba odnosi. Tako, ako želimo da obrišemo nevaljane podatke koji su stariji od 7 dana, imaćemo uslov „da su valjani I da su stariji od 7 dana". S obzirom da većina današnjih baza podataka radi po -{SQL}- standardu, operator konjugacije se uglavnom obilježava engleskom riječju -{AND}-, pri čemu određeni serveri zahtijevaju i da ta riječ bude napisana velikim slovima.

Porijeklo riječi
----------------

Riječ „konjunkcija" je nastala od latinske riječi „*-{coniunctio, coniunctionis, f.}-*", što znači „spoj", „ujedinjenje" (kao što u srpskom jeziku veznik „i" sastavlja — „element **i** element"). Bitno je primijetiti da se u srpskom jeziku slova „n" i „j" nisu spojila u „nj", pa je nepravilno reći i napisati „konjunkcija".

Vidi još
--------

* Logička disjunkcija
* Logičke operacije