Intersection of three sets Suppose I have three finite sets $A, B, C$. I want to find a function $f$ such that 
$|A \cap B \cap C| = f(|A|, |B|, |C|, |A \cap B|, |A \cap C|, |B \cap C|)$
Does such a function exist? The only reasonable solution I get involves the cardinal of the union $|A \cup B \cup C|$, which I don't want at all. If there is no other possibility, I can work with unions of two sets ($|A \cup B|$, etc...).
Thanks a lot.
 A: No such function exists.  
To see that, suppose you had such an $f$.  Let's compute a few examples.
Case I:  $$A=\{1,2,3\},\,B=\{3,4,5\},C=\{1,4,6\}$$
Then it is easy to compute everything in your expression.  We get $$0=f(3,3,3,1,1,1)$$
Case II: $$A=\{1,2,3\},\,B=\{1,4,5\},C=\{1,6,7\}$$
Then we get $$1=f(3,3,3,1,1,1)$$
A: I don't think such a function exists.
You can construct an example where all the inputs are non-zero but the function gives back 0:
$$A=\{1,2,3,4,5\}, B=\{1,6\},C=\{5,6\} \implies f(_\cdots)=0$$
You can easily construct an example where you have the same cardinalities but the intersection is non trivial and hence $f$ doesn't define a function.
A: You can estimate $|A \cup B \cup C|$ by computing its mean over a population where every element is three sets that meet the known conditions. This assumes that the presence of an element in a set is independent from and identically distributed to the presence of every other element in that set or other sets.
$$
P(e \in B \cap C | e \in A) =  \frac{|A \cap B|}{|A|} \frac{|A \cap C|}{|A|}\\
P(e \in C \cap A | e \in B) =  \frac{|B \cap C|}{|B|} \frac{|B \cap A|}{|B|} \\
P(e \in A \cap B | e \in C) =  \frac{|C \cap A|}{|C|} \frac{|C \cap B|}{|C|} \\
$$
Dividing by three because we assume every element has an equal chance of being in the three sets.
$$
E(|A \cap B \cap C|) =  \frac{|A|P(e \in B \cap C | e \in A) + |B|P(e \in C \cap A | e \in B) + |C|P(e \in A \cap B | e \in C)}{3}  \\
 =  \frac{\frac{|A \cap B||A \cap C|}{|A|} + \frac{|B \cap C||B \cap A|}{|B|} + \frac{|C \cap A||C \cap B|}{|C|}}{3}  \\
$$
I wrote up some Python code to check the estimates
import pandas as pd
from random import randint
import numpy as np


def spread(n=1000, epochs=1000):
    er = [np.abs(perc_error(n=n)) for _ in range(epochs)]
    return pd.Series(er).describe()


def perc_error(n=1000):
    test = random_three_sets(n=n)
    real, estimated = in_all(test)
    return (estimated - real) / real


randBinList = lambda n: [randint(0, 1) for b in range(1, n + 1)]
def random_three_sets(n=1000):
    data = [randBinList(3) for _ in range(n)]
    df = pd.DataFrame(data, columns=['A','B','C'])
    return df


def in_all(rtcd):
    inA = rtcd['A']
    inB = rtcd['B']
    inC = rtcd['C']

    nA = np.sum(inA)
    nB = np.sum(inB)
    nC = np.sum(inC)

    nAB = np.sum(inA.multiply(inB))
    nBC = np.sum(inB.multiply(inC))
    nAC = np.sum(inA.multiply(inC))

    trueABC = np.sum(inA.multiply(inB).multiply(inC))
    predictedABC = (nAB*nAC/nA + nBC*nAB/nB + nAC*nBC/nC)/3
    return trueABC, predictedABC


def main():
    print(spread())

Percent error spread with population size 100 over 1000 runs
count    1000.000000
mean        9.797707
std        10.256113
min         0.000000
25%         3.318324
50%         7.621868
75%        13.052138
max       150.760582

Percent error spread with population size 1000 over 1000 runs
count    1000.000000
mean        2.851916
std         2.119233
min         0.005230
25%         1.205157
50%         2.411512
75%         4.135936
max        11.853071

