#
# This cell loads the required dictionaries with information about the mirror dual nef ids, intersection numbers,
# equivalence classes and data calculated by Volker Braun, Thomas W. Grimm and Jan Keitel in http://arxiv.org/abs/1411.2615
#
# You have to follow the instructions and run the code in "loadData1411.2615.jpynb" first!
with open("dualids.txt", "r") as f:
dictDualIds = eval(f.read())
with open("equivalence.txt", "r") as f:
dictEquivalences = eval(f.read())
with open("intersection.txt", "r") as f:
dictIntersections = eval(f.read())
with open("data1411_2615.txt", "r") as f:
dict1411data = eval(f.read())
# This cell prints the Mirror pairs where the Mirror conjecture appears to fail
import fractions
added = []
conjectureFails = []
for pair in dictDualIds.items():
kSectionsAmin = min([a for a in dictIntersections[pair[0]] if a > 0])
kSectionsAgcd = reduce(gcd, dictIntersections[pair[0]])
mwTorsionB = dict1411data[pair[1]][0][1]
product = dict1411data[pair[0]][3] or dict1411data[pair[1]][3]
if not (kSectionsAmin == mwTorsionB) and not product:
if pair[0] not in added:
added.append(pair[0])
added.append(pair[1])
conjectureFails.append(pair)
reduced = []
added = []
for fail in conjectureFails:
eq1 = dictEquivalences[fail[0]]
eq2 = dictEquivalences[fail[1]]
isAdded = reduce(operator.or_, [a in added for a in eq1]) or reduce(operator.or_, [a in added for a in eq2])
if not isAdded:
for a in eq1:
added.append(a)
for a in eq2:
added.append(a)
reduced.append([dictEquivalences[fail[0]], dictEquivalences[fail[1]]])
print "The Mirror conjecture superficially appears to fail in the following cases:\n"
for r in reduced:
print str(r[0]) + " dual to " + str(r[1])
print "\n"