from qiskit_nature.second_q.drivers import PySCFDriver

driver = PySCFDriver()
problem = driver.run()
hamiltonian = problem.hamiltonian.second_q_op()

print(hamiltonian)

from qiskit_nature.second_q.mappers import JordanWignerMapper

mapper = JordanWignerMapper()

print(mapper.map(hamiltonian))

from qiskit_nature.second_q.mappers import QubitConverter

converter = QubitConverter(mapper)

from qiskit.algorithms.minimum_eigensolvers import NumPyMinimumEigensolver
from qiskit_nature.second_q.algorithms import GroundStateEigensolver

algo = GroundStateEigensolver(converter, NumPyMinimumEigensolver())

print(algo.solve(problem))

algo = GroundStateEigensolver(mapper, NumPyMinimumEigensolver())

print(algo.solve(problem))

from qiskit_nature.second_q.mappers import ParityMapper

mapper = ParityMapper(num_particles=(1, 1))

print(mapper.map(hamiltonian))

tapered_mapper = problem.get_tapered_mapper(mapper)

print(type(tapered_mapper))

print(tapered_mapper.map(hamiltonian))

from qiskit_nature.second_q.circuit.library import HartreeFock

hf_state = HartreeFock(2, (1, 1), JordanWignerMapper())
hf_state.draw()

from qiskit_nature.second_q.mappers import InterleavedQubitMapper

interleaved_mapper = InterleavedQubitMapper(JordanWignerMapper())

hf_state = HartreeFock(2, (1, 1), interleaved_mapper)
hf_state.draw()

print(type(mapper.map(hamiltonian)))

from qiskit_nature import settings

settings.use_pauli_sum_op = False

print(type(mapper.map(hamiltonian)))

import qiskit.tools.jupyter

%qiskit_version_table
%qiskit_copyright