from qiskit_nature.second_q.drivers import PySCFDriver

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

from qiskit_nature.second_q.mappers import JordanWignerMapper

mapper = JordanWignerMapper()

qubit_jw_op = mapper.map(fermionic_op)
print(qubit_jw_op)

from qiskit_nature.second_q.mappers import ParityMapper

mapper = ParityMapper()

qubit_p_op = mapper.map(fermionic_op)
print(qubit_p_op)

mapper = ParityMapper(num_particles=problem.num_particles)

qubit_op = mapper.map(fermionic_op)
print(qubit_op)

tapered_mapper = problem.get_tapered_mapper(mapper)
print(type(tapered_mapper))

qubit_op = tapered_mapper.map(fermionic_op)
print(qubit_op)

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()

import qiskit.tools.jupyter

%qiskit_version_table
%qiskit_copyright