TL;DR There is a bug in the composer (already reported to the composer developers) that do no aliases
cx). You can use Qiskit, either locally or in the IBM Quantum Lab to read this totally valid QASM.
qasm = """
measure q -> c;
circuit = QuantumCircuit.from_qasm_str(qasm)
Qiskit does have the aliasing
cx. For example, you can transpile and works as expected:
transpile(circuit, basis_gates=['u', 'h'], optimization_level=0).draw()
U gate is defined in the OpenQASM 2.0 specification, together with
CX, as an abstract gate.
CX are a universal basis and all the other gates can be defined as a combination of them.
However, they are not meant to be used directly and the composer does not list them as available gates:
"But if it is right there! the last one is a clear
U" you are probably saying. And you are not wrong. As explained by @KAJ226, gates are usually detonated with capital letters and non-abstract QASM gates use small-case. As a consequence, the confusion.