(proof explanation) Let G be a connected graph with p > 3 points. Then ω(G) = q if and only if G has no triangles To prove the necessity, let ω(G) = q s.t. q is number of edges and assume that G has a triangle.
Then let G1 be a maximal triangle-free spanning subgraph of G. By the
preceding paragraph. ω(G1) = q1 = |X(G1)|. I did not include sufficiency proof since I only need help on necessity part 
Suppose that G1 = Ω(F). where F is a family of subsets of some set S with cardinality q1. Let x be a line of G not in G, and consider G2 = G1 + x. Since G1 is maximal triangle-free. G1 must have some triangle, say u1u2u3 where x = u1u3. Denote by
S1 ,S2, S3 the subsets of S corresponding to u1,u2 , u3. Now if u2 is adjacent
to only u1 and u3 in G2, replace S2 by a singleton chosen from S1 and S2, and
add that element to S3. Otherwise, replace S3 by the union of S3 and any
element in S1∩S2. In either case this gives a family F' of distinct subsets
of S such that G2 = Ω(F). Thus ω(G2) = q1, while |X(G2)| = q1 + 1. 
Question: why would ω(G2) = q1? since since G2 has one more edge, shouldn't that make the intersection number of G2 greater than q1? Also when is the intersection number less than the number of edges?
If G2 is congruent to G, there is nothing to prove. But if G2 ≠ G, then let
|X(G)| - |X(G2)| = q0.
It follows that G is an intersection graph on a set with q1 + q0 elements.
However, q1 + q0 = q - 1. Thus ω(G) < q. completing the proof.
I do not understand the general strategy of the sufficiency proof
 A: Here's the idea of the proof. We assume $G$ is an arbitrary graph with $q$ edges that does contain a triangle, and we will show that the intersection number of $G$ is less than $q$. To do this, we need to find an intersection representation of $G$ that uses fewer than $q$ total elements.
We let $G_1$ be a maximal triangle-free spanning subgraph of $G$ with $q_1$ edges, and we let $G_2$ be $G_1$ with one edge added, so $G_2$ has $q_2 = q_1+1$ edges, and contains a triangle. Our proof will proceed in three steps:


*

*We start with an intersection representation of $G_1$ that uses $q_1$ elements (this is always possible).

*We use this to construct an intersection representation of $G_2$ that also uses $q_1$ elements, showing that the intersection number of $G_2$ is smaller than the number of edges in $G_2$. 

*Then we use this to construct an intersection representation of $G$ that uses only $q - 1$ elements, showing that the intersection number of $G$ is also smaller than the number of edges in $G$.



Step 1. We know that $G_1$ has an intersection representation that uses $q_1$ elements for a number of reasons. First of all, you presumably proved it in the half of the proof you skipped. Second, there is always a construction that does this for any graph: assign to each vertex the set of edges incident to it.
In any case, we know that there is a set $S$ with $|S|=q_1$ and a family of sets $S_1, S_2, \dots, S_p \subseteq S$ with the property that $S_i \cap S_j \ne \varnothing$ if and only if there is an edge between vertices $u_i$ and $u_j$ in $G_1$. This is the intersection representation of $G_1$.

Step 2. We create $G_2$ from $G_1$ by adding an edge that was not already present. It's trivial to modify the representation above to represent $G_2$: just create a new element $z$ and add it to $S_1$ and $S_2$. But then we would be using $q_2 = q_1 + 1$ elements; we would like to do better and use only $q_1$ elements.
Since $G_1$ was maximally triangle-free, in $G_2$ there is a triangle whose vertices we'll call $u_1, u_2, u_3$. One of the edges between these must have been the edge we just added, because $G_1$ didn't have triangles. Let's say that's the edge $(u_1, u_3)$, so $(u_1, u_2)$ and $(u_2, u_3)$ were already edges of $G_1$. The intersection representation of $G_1$ has:


*

*$S_1 \cap S_2 \ne \varnothing$, since $(u_1, u_2)$ is an edge of $G_1$;

*$S_2 \cap S_3 \ne \varnothing$, since $(u_2, u_3)$ is an edge of $G_1$;

*but $S_1 \cap S_3 = \varnothing$, since $(u_1, u_3)$ is not an edge of $G_1$.


Let $s$ be an arbitrary element of $S_1 \cap S_2$. We know that there is no other $S_i$ that contains $s$, because then $u_i$ would be adjacent to $u_1$ and $u_2$ in the graph $G_1$, forming a triangle - and $G_1$ is triangle-free.
So if we modify $S_3$ by changing it to $S_3' = S_3 \cup \{s\}$, we get that $S_1$ and $S_3'$ have a common element. ($S_2$ and $S_3$ already had a common element, and this is still true of $S_2$ and $S_3'$.) But no other new intersections are created. So the result is an intersection representation of a graph that has all the edges of $G_1$, and the edge $(u_1, u_3)$: an intersection representation of $G_2$.
Since we didn't need to add new elements to $S$, this intersection representation has $|S|=q_1$ elements: one fewer than the number of edges in $G_2$. Therefore $G_2$ has intersection number at most $q_1 = q_2 -1$.

Step 3. Now we construct an intersection representation of $G$ that uses fewer elements than edges in $G$. 
This is actually easy. We start from the intersection representation of $G_2$ that uses $q_1 = q_2 - 1$ elements. Then, for every edge $x = (u_i, u_j)$ that's in $G$ but not in $G_2$, we:


*

*Add a new element $x$ to the set $S$.

*Add $x$ to $S_i$ and to $S_j$, but not to any other sets.


This step makes $S_i \cap S_j \ne \varnothing$ without changing any other intersections. It also costs us the addition of an extra element to $S$. Altogether, if $G_2$ has $q_2$ edges and $G$ has $q$ edges, we needed to add $q - q_2$ extra elements.
But this is okay! We started with $|S| = q_1 = q_2 -1$. Then we added $q - q_2$ elements to $S$, ending up with $|S = (q_2 - 1) + (q - q_2) = q-1$. So we now have an intersection representation of $G$ that uses only $q-1$ elements.
Therefore the intersection number of $G$ is at most $q-1$: fewer than the number of edges in $G$.
